【发布时间】:2011-02-21 01:15:18
【问题描述】:
我目前在我正在构建的一个新模块中有一个简单的 menu_alter 钩子,它允许对菜单进行简单的访问控制:
<?php
function amh_menu_menu_alter(&$items)
{
$items['admin/build/menu/access'] = array(
'title' => 'Access',
'page callback' => 'drupal_get_form',
'page arguments' => array('amh_menu_access_configure'),
'access arguments' => array('administer menu'),
'type' => MENU_LOCAL_TASK,
'weight' => 5,
'file' => 'amh_menu.admin.inc',
);
}
但是,我在加载页面时收到以下错误:
[Mon Feb 21 11:25:15 2011] [error] [client 10.2.2.106] PHP Fatal error: require_once():
Failed opening required '/amh_menu.admin.inc'
(include_path='.:/usr/share/php:/usr/share/pear')
in /var/www/shop.dev.amh/www/includes/menu.inc on line 346,
referer: http://shop.dev.amh/admin/build/menu
查看其他有 menu 和 menu_alter 钩子的模块,它们都在某些地方引用了本地 module.admin.inc,并且它们没有这个问题,并且似乎没有指定任何额外的路径。
确实 - 菜单挂钩的文档说“文件路径”菜单项参数是
包含目录的路径 “文件”中指定的文件。这 默认为模块的路径 实现钩子。
我该如何进行这项工作?
【问题讨论】:
-
你试过设置“文件路径”参数吗?哪个版本的 Drupal?也许这是相关的:drupal.org/node/259133
标签: drupal drupal-6 drupal-modules drupal-hooks