首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drupal menu_alter在错误的位置寻找包含文件

drupal menu_alter在错误的位置寻找包含文件
EN

Stack Overflow用户
提问于 2011-02-21 01:15:18
回答 1查看 1.3K关注 0票数 1

我目前正在构建的一个新模块中有一个简单的menu_alter挂钩,它允许对菜单进行简单的访问控制:

代码语言:javascript
复制
<?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',
  );
}

但是,加载页面时会出现以下错误:

代码语言:javascript
复制
[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_alter钩子的其他模块,它们都在某些地方引用本地module.admin.inc,并且它们没有这个问题,并且似乎没有指定任何额外的路径。

实际上-菜单钩子的文档显示“文件路径”菜单项参数是

包含在“

”中指定的文件的目录的路径。这默认为实现钩子的模块的路径。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-21 04:45:36

您可以显式地将文件路径设置为drupal_get_path(“模块”、“您的模块”)。这是默认的,但默认设置在调用hook_menu_alter()之前。

问题是,为什么要在hook_menu_alter()而不是hook_menu()中定义新菜单项。alter应该用来改变其他模块的现有钩子,而不是添加新的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5061406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档