Как передать переменную $GET на странице?
Я хотел бы создать привилегированное пространство для некоторых пользователей.
Я создаю роль "Кандидат". Я назначил разрешение "доступ к профилям пользователей" для этой роли. Я создаю пользователя, который использует эту роль. (например, foo)
Во-вторых, я создаю меню (см. Ниже)
$items['candidate/%candidate'] = array(
'title' => t('My candidate space'),
'description' => '',
'page callback' => 'cel_configuration_custom_page',
'page arguments' => array(1),
'access arguments' => array('access user profiles'),
'access callback' => TRUE,
);
Затем связанная функция
function cel_configuration_custom_page($args){
return 'custom';
}
Наконец, я очистил кэш.
Когда я захожу на страницу кандидат/1 со своей учетной записью "тото" или учетной записью 'администратор', я не нашел страницу.
Почему?
2 answers
Попробуйте выполнить следующий код:
$items['candidate/%user'] = array(
'title' => t('My candidate space'),
'page callback' => 'cel_configuration_custom_page',
'page arguments' => array(1),
'access arguments' => array('access user profiles'),
);
function cel_configuration_custom_page($account){
return 'Custom page for ' . $account->name;
}
Вы не можете использовать %candidate
в качестве аргумента для учетных записей пользователей. Кроме того, если вы хотите ограничить доступ определенным разрешением, не устанавливайте обратный вызов доступа на TRUE
, так как это предоставит доступ всем.
Спасибо за ваши ответы.
Для решения проблемы я использую в качестве переменной url% или ['кандидат/%'], и это работает правильно.