我初始化多个项目通过hook_menu(Drupal的6)hook_menu() - 一个意想不到的行为(较长路径问题)
...
$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;
第一项是父项,工作正常。以下两个是子条目。最后两个菜单条目保持无效并重定向到父页面视图。我通过从路径定义中消除第一个通配符'%/'标记进行了小修改来修复它。
方式:
$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']
请通过添加通配符来帮助我解决问题。超过两张外卡是无效的吗?
好抓!不幸的是,在'hook_menu()'的文档页面中没有提到这个限制,我认为这是第一个知道如何实现菜单回调的细节的第一个地方。 – kiamlaluno 2010-08-12 17:17:37
感谢哥们,对我来说是一件新事物。 它已被扩展到Drupal 7中的9。 – 2010-08-12 18:42:52