如果用户以管理员身份登录,则可以正常工作,但如果用户已登录,则会向他们发送其个人资料页面。为什么?。我可以查看哪些文件?
$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
}
答案 0 :(得分:3)
您的回调function myaccess()
必须为该用户返回TRUE,否则该用户无权访问。此回调函数可以通过access arguments
获取参数。如果您未提供access callback
,则默认为function user_access($access_string)
,在这种情况下,您仍需提供access arguments
,例如“访问内容”。
另请注意,在hook_menu代码中每次更改后,您必须刷新菜单缓存,因为这是缓存的大量退出。
答案 1 :(得分:0)
如果您希望所有用户(登录或匿名)都能看到此页面,最简单的方法是在访问回调中返回TRUE。例如:
'access callback' => TRUE,
否则,就像berkes所说,您的访问回调必须为该用户返回TRUE以查看该页面。例如:
function my_access() {
global $user;
return in_array('authenticated user', $user->roles);
}
如果用户具有“经过身份验证的用户”角色,则返回TRUE,否则返回FALSE。