2010-08-10 88 views
0

如果用户以管理员身份登录,它可以正常工作,但是如果用户登录,它会向他们发送他们的个人档案页面。为什么?。我可以检查哪些文件?简单挂钩菜单没有做它应该做的

$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 
} 

回答

3

你的回调function myaccess()必须为该用户返回TRUE,否则该用户无权访问。此回调函数可以通过access arguments获取参数。如果您不提供access callback,则默认为function user_access($access_string),在这种情况下,您仍然需要提供access arguments,例如, “访问内容”。

另请注意,在hook_menu-code每次更改之后,您必须刷新菜单缓存,因为缓存已大量退出。

0

如果您希望此页面对所有用户都可见(登录或匿名),最简单的方法是在访问回调中返回TRUE。例如:

'access callback' => TRUE, 

否则,像贝尔克斯说,您的访问回调必须返回TRUE为该用户看到的网页。例如:

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

如果用户拥有“认证用户”的作用,这将返回TRUE和FALSE,如果他们不这样做。

相关问题