Simple Hook Menu не делает то, что должен делать - PullRequest
0 голосов
/ 10 августа 2010

Если пользователь вошел в систему как администратор, он работает нормально, но если пользователь вошел в систему, он отправляет им страницу своего профиля. Зачем?. Какие файлы я могу проверить?

$items['go/to/school'] = array(
  'title' => 'Some page Title',
  'page callback' => 'my_function',
  'access callback' => 'my_access',
  'type' => MENU_CALLBACK
);

function my_function() {
  echo "WHATS UP"; //NEVER SHOWS UP
}

Ответы [ 2 ]

3 голосов
/ 10 августа 2010

Ваш обратный вызов function myaccess() должен вернуть TRUE для этого пользователя, иначе у этого пользователя нет доступа. Эта функция обратного вызова может получить аргументы через access arguments. Если вы не предоставите access callback, то по умолчанию будет function user_access($access_string), и в этом случае вам все равно нужно будет предоставить access arguments, например, "доступ к контенту".

Также обратите внимание, что после каждого изменения в коде hook_menu вы должны обновлять кэш меню, так как это кешируется, выходите из строя.

0 голосов
/ 11 августа 2010

Если вы хотите, чтобы эта страница была видимой для всех пользователей (вошедших в систему или анонимных), самый простой способ - просто вернуть TRUE в вашем обратном вызове доступа.Например:

'access callback' => TRUE,

В противном случае, как сказал Беркес, ваш обратный вызов доступа должен вернуть TRUE, чтобы этот пользователь увидел страницу.Например:

function my_access() {
  global $user;
  return in_array('authenticated user', $user->roles);
}

Это вернет ИСТИНА, если пользователь имеет роль «аутентифицированного пользователя», и ЛОЖЬ, если они этого не делают.

...