1

我试图弄清楚为什么从 7.4 升级到 7.10 后自定义模块的 hook_menu 实现不再工作菜单链接在更新到最新版本之前正常工作。更新后,所有自定义模块链接都从表 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;
}
4

1 回答 1

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 的缓存,以便更新相关注册表。

于 2012-01-28T02:23:31.183 回答