Drupal 自定义菜单的帮助
Drupal 7Drupal 自定义菜单的帮助,drupal,drupal-modules,drupal-7,Drupal,Drupal Modules,Drupal 7,Drupal 7hook_menu()让我很困惑;我什么都试过了,但似乎都没法成功 我需要什么:在自定义模块中,我想创建一个新菜单,并向该菜单添加大约四个链接。听起来很简单,但我正在努力。我已经能够使用.install文件中的$menu数组创建菜单本身,但是向该菜单添加项目没有意义 正在工作的代码: $menu = array( 'menu_name' => 'project-menu', 'title' => $t('Project Menu'), 'descrip
hook_menu()
让我很困惑;我什么都试过了,但似乎都没法成功
我需要什么:在自定义模块中,我想创建一个新菜单,并向该菜单添加大约四个链接。听起来很简单,但我正在努力。我已经能够使用.install文件中的$menu数组创建菜单本身,但是向该菜单添加项目没有意义
正在工作的代码:
$menu = array(
'menu_name' => 'project-menu',
'title' => $t('Project Menu'),
'description' => 'Project Menu',
);
menu_save($menu);
$items = array();
$items['project-menu/%'] = array(
'title' => 'Test Link',
'page callback' => 'dc_project_page',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_LOCAL_TASK,
);
return $items;
不起作用的代码:
$menu = array(
'menu_name' => 'project-menu',
'title' => $t('Project Menu'),
'description' => 'Project Menu',
);
menu_save($menu);
$items = array();
$items['project-menu/%'] = array(
'title' => 'Test Link',
'page callback' => 'dc_project_page',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_LOCAL_TASK,
);
return $items;
这些都在dc\u project\u菜单()下的dc\u project.install文件中。希望我只是在做一些愚蠢的事情,非常感谢所有的帮助。甚至只是把我指给一个模块,作为一个简单的例子,谢谢。我确实查看了这个示例项目,但在向我的新菜单添加链接方面没有得到任何结果。传递到$items
的内容不起作用,因为菜单保存()
只接受包含菜单名
、标题
和说明
的数组。
在$items
中使用的是一个数组,它描述了由模块实现的菜单回调,所有模块实现的菜单回调的定义不保存在“menu_custom”(从menu_save()
使用的表)中,而是缓存在Drupal缓存表中
如果您试图更改由另一个模块定义的菜单回调,那么您应该实现;否则,如果您只想定义模块的菜单回调,则应该实现
钩子实现(hook\u menu()
和hook\u menu\u alter()
)必须在模块文件中(在您的情况下,在dc\u project.module中),而不是在dc\u project.install中。Drupal在正常加载已启用的模块时不加载安装文件;它在更新(或安装)模块时加载安装文件,但在其他情况下不加载安装文件。
使用menu\u save()
保存菜单的代码可以在安装文件中、或的实现中。也可以将其用于实施;在这种情况下,代码(在模块启用时执行)应首先验证尚未添加菜单。(hook\u enable()
和hook\u disable()
应该放在安装文件中。)wow,我还没有尝试使用您的指导修复我的代码。但这是非常有用的,非常感谢。感觉我对drupal菜单系统有了更好的理解。