我初始化多個項目通過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