drupal之hook_menu()之意外行为(较长的路径问题)
lonelyxmas
阅读:42
2024-11-24 20:56:43
评论:0
我正在通过 hook_menu (Drupal 6) 初始化一些项目
...
$items['webtv/block/%/playlist/edit/%'] = array(
...
'page arguments' => array('webtv_playlist_form', 2, 5),
...
);
$items['webtv/block/%/playlist/edit/%/filter/new'] = array(
...
'page arguments' => array('webtv_playlist_param_form', 2, 5),
...
);
$items['webtv/block/%/playlist/edit/%/filter/%'] = array(
...
'page arguments' => array('webtv_playlist_param_form', 2, 5, 7),
...
);
return $items;
第一个条目是父条目并且工作正常。以下两个是子条目。最后两个菜单条目仍然无效并重定向到父页面 View 。我通过从路径定义中删除第一个通配符“%/”标记,通过一个小的修改来修复它。
意思是:
$items['webtv/block/%/playlist/edit/%/filter/%']
到
$items['webtv/block/playlist/edit/%/filter/%']
和
$items['webtv/block/%/playlist/edit/%/filter/new']
到
$items['webtv/block/playlist/edit/%/filter/new']
请通过添加通配符来帮助我解决我做错了什么?超过两个通配符是否无效?
请您参考如下方法:
文档中没有充分提及,但是您可以用于 Drupal 菜单回调的路径元素的数量是有限制的 - 请参阅 the MENU_MAX_PARTS constant .
对于 Drupal 6,此限制为七,您的第二条和第三条路径超出了该限制。您的两个修复都将元素计数减少到 7,这就是它们起作用的原因。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。