Drupal 7 .10 hook_menu实现错误

时间:2012-01-27 08:18:19

标签: drupal drupal-7 hook-menu

我想弄清楚为什么hook_menu实现在从7.4升级到7.10后自定义模块不再工作菜单链接正常工作,直到更新到最新版本。更新后,将从表menu_links和menu_router中删除所有自定义模块链接。

经过多次尝试,我还为D7.10安装了一个新版本,并创建了一个简单的自定义模块,只有一个项目链接(参见下面的代码)仅用于测试目的。启用模块后,链接不会实现。表menu_links和menu_routers不会更新。 我一直在寻找许多可能的错误和解决方案而没有成功。 现在真的堆叠了。让我怀疑的是,我没有看到其他人有同样的问题......有什么建议吗?谢谢

function misite_menu() {
$items = array(); 
$items['a/main'] = array(
'title' => 'main',
 'page callback' => 'main',
 'description' => t('Main front page'),
 'access callback' => TRUE,
 );
return $items;  
}

function misite_theme() {
return array(
'main' => array
(
  'template' => 'main',
  'variables' => array('title' => NULL),
),

);  
}

function main() {

$path = drupal_get_path('module', 'a'); 
$title = t('');
$build['mainelement'] = array(
'#theme' => 'main',
'#title' => $title,
);
$output = drupal_render($build);
return $output;
}

1 个答案:

答案 0 :(得分:1)

从这一行的外观来看:

$path = drupal_get_path('module', 'a'); 

您的模块名为a

在Drupal中,钩子命名的约定是MODULE_NAME_name_of_hook()(见http://api.drupal.org/api/drupal/includes--module.inc/group/hooks/7)。

对于hook_menu()hook_theme()都是如此,因此,如果模块 名为a,则您的函数应为名称a_menu()a_theme()

如果对任何挂钩进行更改,请确保清除Drupal的缓存,以便更新相关的注册表。