Drupal 6 абсолютные подстановки в _menu (), возможно ли это?

StackOverflow https://stackoverflow.com/questions/1508773

  •  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);
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top