我想弄清楚为什么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;
}
答案 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的缓存,以便更新相关的注册表。