Drupal 6 Wildcards absolutos em _menu (), é possível?
-
19-09-2019 - |
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 ?
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);
};