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?

¿Fue útil?

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);
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top