Drupal 6 comodines absolutos en _menu (), es posible?
-
19-09-2019 - |
Pregunta
es posible manejar todos los comodines en _menu () por módulo.
Yo sé sobre específicos como comodines
display/page/%
pero eso no va a funcionar para las rutas display/page/3/andOrderBy/Name
¿Qué pasa si quiero manejar ammount imprevisto de parámetros como
display/page/3/12/45_2/candy/yellow/bmw/turbo
Quiero tener una ruta _menu display/*
() para gestionar todos los argumentos.
¿cómo puedo hacer eso?
Solución
Drupal pasará algún elemento de URL adicionales como parámetros adicionales a su función de devolución de llamada hook_menu
- use noreferrer func_get_args () en su devolución de llamada para conseguirlos.
Así que si se registra una sola display/page/%
comodín, pero la solicitud real tiene dos elementos display/page/3/andOrderBy/Name
adicional, su función se le pasará '3' como un parámetro explícito, sino también 'andOrderBy' y 'Nombre' como otras adicionales implícitos.
Ejemplo de devolución de llamada:
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 ...
}
Otros consejos
ah;) tenías razón
aquí es cómo lo resolví.
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);
};