Pergunta

É possível lidar com todos os curingas em _menu () por módulo.

Eu sei sobre curingas específicas como

display/page/% Mas isso não funcionará para caminhos display/page/3/andOrderBy/Name

E se eu quiser lidar

display/page/3/12/45_2/candy/yellow/bmw/turbo

Eu quero ter um display/* _menu () caminho para lidar com todos os argumentos.

como eu posso fazer isso ?

Foi útil?

Solução

Drupal passará a quaisquer elementos de URL adicionais como parâmetros adicionais para o seu hook_menu Função de retorno de chamada - Use func_get_args () em seu retorno de chamada para obtê -los.

Então, se você registrar apenas um curinga display/page/%, mas a solicitação real tem dois elementos adicionais display/page/3/andOrderBy/Name, seu retorno de chamada será aprovado '3' como um parâmetro explícito, mas também 'andorderby' e 'nome' como outros implícitos.

Exemplo de retorno de chamada:

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 ...
}

Outras dicas

ah;) você estava certo

Aqui está como eu resolvi isso.

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top