当前位置: 首页 > 知识库问答 >
问题:

路径未通过hook_menu_alter在Drupal 6注册

钱安和
2023-03-14

我正在通过hook\u menu\u alter添加一个新路径,但当我访问此路径时,不会触发正确的页面回调。当我检查drupal core中的menu_execute_active_handler函数选择了什么路由器_项时,它会打印一个缺少最后1个path参数的父路径。这就是我如何改变菜单的方法

function mainlist_slot_menu_alter(&$items) {
   $items['user/%user/categories/bird/list/%/%ctools_js/%']  = array(
     'title'    => 'Mainlist slot fulfiller',
     'page callback'  => 'mainlist_slot',
     'page arguments' => array(1, 5, 6,7),
     'access callback'=> 'mainlist_slot_access',
     'access arguments' => array(1,5,7)
  );
}

其他模块也实现了hook\u menu\u alter

function mainlist_menu_alter(&$items){
 $items['user/%user/categories/bird/list/%mainlist'] = array(
  'title callback' => 'mainlist_title',
  'title arguments'=> array(5),
  'description'    => 'Page showing mainlist for referenced user',
  'page callback' =>'mainlist_view',
  'page arguments' => array(5),
  'load arguments' => array(1),
  'access callback' => 'mainlist_access',
  'access arguments' => array(1,5),
  'type' => MENU_CALLBACK,
 )
);

所以现在当我访问pathuser/1/categories/bird/list/1/nojs/91时,它应该触发在第一个代码段中定义的页面回调,但它从第二个代码段调用页面回调。所以我假设第一个代码段中的hook_alter实现可能根本不会被调用,但当我在$items数组的hook中放入一些调试语句时,它会很好地打印它们,所以这个函数被正确调用,但这个alter中的唯一路径没有被注册。

请让我知道这种行为的原因。提前感谢

共有1个答案

黄无尘
2023-03-14

最好的解决方案是用一个或两个部分截断路径!或者您可以重新定义菜单\u MAX\u部件。但是对于这一点,您需要修改核心,我相信您不想这样做,对吗?

 类似资料:
  • 我有一个类项目,它使用一个字符作为标识符。 我希望能够检索由类表示的路径,它包含的简单有序列表: 为了存储和管理我的项目和路径,我使用了一个专用类。它包含两个,其中包含每种类型。我可以使用任务的标识符检索任务。 null 更新/注意:我正在寻找通过项目集构建路径

  • 我有一个Django Vue。我正在尝试连接到django频道的js聊天应用程序。 要访问任何聊天室,您只需访问: http://localhost:8080/rooms/"id"/ 我的javascript连接如下所示: 我的consumers.py: 我的routing.py: 我的项目routing.py: 问题是,我无法连接到websocket,我的django服务器说: [失败实例:回溯

  • 问题内容: 说,我有两条绝对路径。我需要检查其中一条路径所指的位置是否为另一条路径的后代。如果为true,则需要从祖先找出后代的相对路径。用Python实现此功能的好方法是什么?我可以受益于任何图书馆? 问题答案: os.path.commonprefix()和os.path.relpath()是您的朋友: 因此,您可以测试公共前缀是否是路径之一,即,其中一个路径是否是公共祖先: 然后,您可以找到

  • 我的想法: 回溯解决方案,我们通过所有解决方案的树和打印,一旦我们达到目标单元格。我实现了这一点,但我不确定它是否正确或有意义,或者它是否是正确的方法。我在这里发布了代码,如果有人能解释它的错误,我将非常感谢。 递归解决方案,我从起始单元格开始,并从每个相邻单元格递归地找到目标单元格的路径,基本情况是击中目标单元格。 5)有没有更简单的方法来做到这一点? 下面是我的代码,它打印N=4的正确路径数。

  • 问题内容: 我的Java应用程序有问题,特别是从计算机中的某个位置加载图像时。 在这篇文章之后,我使用和来在计算机上加载图像。首先,我将图片()放入源代码中,并且可以正常工作。但是,如果我将图像放到另一个地方(比如说),Java IDE会向我显示一个 这是代码: 问题答案: &不适用于文件路径,但适用于相对于代码库的路径。如果代码库为,则可以找到资源的相对路径为。 通过加载文件之间..differ

  • 我的用例是,我想建立一个运行Akka Actors的节点集群。每个参与者都是同一参与者的实例,用于处理与特定用户的WebSocket连接。每个参与者都将使用唯一的路径注册自己。在非集群设置中,我可以简单地通过其路径调用actor,如其中,是actor实例的唯一名称。我必须将消息传递给这些参与者,这样他们才能将消息发送回各自的WebSocket客户端。 显然Akka集群提供了各种设置:http://