проблема с подстановочным знаком меню крючка()
Я не могу получить подстановочный знак из hook_menu, чтобы передать его функции обратного вызова
Вот что у меня есть:
function spin_menu() {
$items = array();
$items['spin/login/%'] = array(
'title' => 'SPIN',
'type' => MENU_CALLBACK,
'access callback' => TRUE,
'page callback' => 'spin_check_access'
);
return $items;
}
function spin_check_access($type = '') {
echo $type; // type is never the %
}
Правильно ли это? Мне нужно, чтобы тип $ был заменен значением подстановочного знака.
3
2 answers
У вас есть два варианта:
function spin_menu() {
$items = array();
$items['spin/login'] = array(
'title' => 'SPIN',
'type' => MENU_CALLBACK,
'access callback' => TRUE,
'page callback' => 'spin_check_access',
);
$items['spin/login/%'] = array(
'title' => 'SPIN',
'type' => MENU_CALLBACK,
'access callback' => TRUE,
'page callback' => 'spin_check_access',
'page arguments' => array(2),
);
return $items;
}
Меню подключения не будет отправлять в функцию обратного вызова никакие параметры с подстановочными знаками, но оно будет отправлять параметры, не определенные в URL-адресе. Таким образом, в первом примере, если вы перейдете к spin/login
, тип будет ''
, а тип spin/login/foo
будет foo
. Для второго примера spin/login
вернет 404, а для spin/login/foo
тип будет foo
.
2
Author: googletorp, 2012-01-12 11:09:43
Вам не хватает аргументов страницы, указывающих Drupal, какие значения передавать. Попробуйте:
$items['spin/login/%'] = array(
'title' => 'SPIN',
'type' => MENU_CALLBACK,
'access callback' => TRUE,
'page arguments' => array(2),
'page callback' => 'spin_check_access'
);
1
Author: Letharion, 2012-01-12 11:08:18