_menu()のDrupal 6 Absolute Wildcards、それは可能ですか?
-
19-09-2019 - |
質問
モジュールごとに_menu()のすべてのワイルドカードを処理することは可能ですか?
私は特定のワイルドカードについて知っています
display/page/%
しかし、それはパスでは機能しません display/page/3/andOrderBy/Name
予測されていないパラメーターを処理したい場合はどうなりますか
display/page/3/12/45_2/candy/yellow/bmw/turbo
私はそれを持ちたいです display/*
_menu()すべての引数を処理するパス。
どうすればできますか?
解決
Drupalは、追加のパラメーターとして追加のURL要素を渡します hook_menu
コールバック関数 - 使用 func_get_args() コールバックでそれらを取得します。
したがって、ワイルドカードを1つだけ登録する場合 display/page/%
, 、しかし、実際のリクエストには2つの追加要素があります display/page/3/andOrderBy/Name
, 、コールバックは明示的なパラメーターとして「3」を渡されますが、暗黙の追加のパラメーターとして「andOrderby」および「名前」も渡されます。
コールバックの例:
function yourModuleName_display_callback($page_number) {
// Grab additional arguments
$additional_args = func_get_args();
// Remove first one, as we already got it explicitely as $page_number
array_shift($additional_args);
// Check for additional args
if (!empty($additional_args)) {
// Do something with the other arguments ...
}
// other stuff ...
}
他のヒント
ああ;)あなたは正しかった
これが私がそれを解決した方法です。
function mysearch_menu() {
$items['mysearch/%'] = array(
'page callback' => 'FN_search',
'access callback' => TRUE,
);
return $items;
}
function FN_search()
{
return print_r(func_get_args(),true);
};
所属していません StackOverflow