Как передать переменную $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
Author: kiamlaluno, 2015-05-26

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, так как это предоставит доступ всем.

 2
Author: Aram Boyajyan, 2015-05-26 09:10:09

Спасибо за ваши ответы.

Для решения проблемы я использую в качестве переменной url% или ['кандидат/%'], и это работает правильно.

 1
Author: Djik, 2015-10-09 13:58:30