Drupal 7中我的模块的路径是什么?

时间:2011-09-22 06:28:47

标签: drupal

这是我第一次使用Drupal 7,我写了一个回音“test”的测试模块,在菜单中路径是“test”。

当我尝试访问localhost / drupal / test或localhost / drupal / admin / test时,它找不到它,我看到404或管理页面。

这里有什么问题?


这是代码,它不起作用

<?php
/* $Id$ */

/**
* @file
* Very simple DRUPAL module
*/

/**
* Implementation of hook_help().
*/
function hello_world_help($section) {
  switch ($section) {
    case 'admin/help#hello_world':
      $output = '<p>Hello world help...</p>';
      return $output;
    case 'admin/modules#description':
      return 'Hello world module description...';
  }
}

/**
* Implementation of hook_menu().
*/
function hello_world_menu($may_cache) {
  $items = array();

  if ($may_cache) {
  }
  else {
    $items[] = array(
      'path' => 'hello', // drupal path example.com/?q=hello
      'title' => 'Hello world page...', // page title
      'callback' => 'hello_world_page', // callback function name
      'access' => TRUE, // every user can look at generated page
      'type' => MENU_CALLBACK // define type of menu item as callback
    );
  }

  return $items;
}


/**
* Function which generate page (this generate any content - you need only your own code...)
*/
function hello_world_page() {
  return '<p>Hello world!</p>';
}
?>

2 个答案:

答案 0 :(得分:8)

使用drupal_get_path()获取模块或主题的路径。如果模块的名称是'mymodule',那么你只需调用下面的代码来获取路径。

drupal_get_path('module', 'mymodule');

修改

再次阅读你的问题让我意识到你要求你的模块的URL。您能否在模块的hook_menu()中发布您的代码?

答案 1 :(得分:0)

如果我找到你的话,

  1. 您编写了一个hook_menu(),您在其中创建了菜单路径测试(例如$item['test'])并编写了一个页面回调函数。

  2. 在页面回调函数中,您说回显测试。

  3. 如果是这种情况,您只需清除缓存。 Drupal需要注册菜单项。编写任何菜单挂钩实现后,您应该清除缓存的数据,然后再试一次。