Drupal 6 абсолютные подстановки в _menu (), возможно ли это?
-
19-09-2019 - |
Вопрос
Возможно ли обрабатывать все подстановки в _menu () по модулю.
Я знаю о конкретных подстановках, таких как
display/page/%
Но это не сработает на пути display/page/3/andOrderBy/Name
Что если я захочу справиться с непредвиденными параметрами, такими как
display/page/3/12/45_2/candy/yellow/bmw/turbo
Я хочу иметь один display/*
_menu () путь к обработке всех аргументов.
как мне это сделать ?
Решение
Drupal передаст любые дополнительные элементы URL в качестве дополнительных параметров к вашим hook_menu
Функция обратного вызова - Использовать func_get_args () В вашем обратном вызове, чтобы получить их.
Так что, если вы зарегистрируете только один подстановка display/page/%
, но фактический запрос имеет два дополнительных элемента display/page/3/andOrderBy/Name
, ваш обратный вызов будет передаваться «3» в качестве явного параметра, а также «Andordby» и «имя» в качестве неявных дополнительных.
Пример обратного вызова:
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 ...
}
Другие советы
ах;) ты был прав
Вот как я это решил.
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);
};