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 ?

War es hilfreich?

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);
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top