Drupal 6 absolute Wildcards in _Menu (), ist es möglich?
-
19-09-2019 - |
Frage
Ist es möglich, alle Wildcards in _Menu () mit dem Modul zu bewältigen?
Ich kenne bestimmte Wildcards wie
display/page/%
Aber das funktioniert nicht für Pfade display/page/3/andOrderBy/Name
Was ist, wenn ich nicht vorgefertigte Munmount von Parametern wie abwickeln möchte?
display/page/3/12/45_2/candy/yellow/bmw/turbo
Ich möchte einen haben display/*
_Menu () Pfad, um alle Argumente zu bewältigen.
wie kann ich es tun ?
Lösung
Drupal übergibt zusätzliche URL -Elemente als zusätzliche Parameter an Ihre hook_menu
Rückruffunktion - Verwendung func_get_args () in Ihrem Rückruf, um sie zu bekommen.
Wenn Sie also nur eine Wildcard registrieren display/page/%
, aber die tatsächliche Anfrage hat zwei zusätzliche Elemente display/page/3/andOrderBy/Name
, Ihr Rückruf wird als explizite Parameter '3' übergeben, aber auch "und Orderby" und "Name" als implizite zusätzliche.
Beispiel Rückruf:
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 ...
}
Andere Tipps
Ah;) Du hattest Recht
Hier ist, wie ich es gelöst habe.
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);
};