Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 简单的钩子菜单不做它应该做的事情_Drupal_Drupal 6 - Fatal编程技术网

Drupal 简单的钩子菜单不做它应该做的事情

Drupal 简单的钩子菜单不做它应该做的事情,drupal,drupal-6,Drupal,Drupal 6,如果用户以管理员身份登录,则可以正常工作,但如果用户登录,则会向他们发送其配置文件页面。为什么?我可以检查哪些文件 $items['go/to/school'] = array( 'title' => 'Some page Title', 'page callback' => 'my_function', 'access callback' => 'my_access', 'type' => MENU_CALLBACK ); function my_fu

如果用户以管理员身份登录,则可以正常工作,但如果用户登录,则会向他们发送其配置文件页面。为什么?我可以检查哪些文件

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

您的回调函数myaccess()必须为该用户返回TRUE,否则该用户没有访问权限。此回调函数可以通过
访问参数
获取参数。当您不提供
访问回调时
默认为
函数用户访问($access\u string)
,在这种情况下,您仍然需要提供
访问参数
,例如“访问内容”


还要注意的是,每次更改hook_menu-code后,您必须刷新菜单缓存,因为该缓存会大量退出。

您的回调函数myaccess()必须为该用户返回TRUE,否则该用户没有访问权限。此回调函数可以通过
访问参数
获取参数。当您不提供
访问回调时
默认为
函数用户访问($access\u string)
,在这种情况下,您仍然需要提供
访问参数
,例如“访问内容”


还要注意的是,每次更改hook_菜单代码后,您必须刷新菜单缓存,因为它被大量缓存。如果希望此页面对所有用户可见(登录或匿名),最简单的方法就是在访问回调中返回TRUE。例如:

'access callback' => TRUE,
function my_access() {
  global $user;
  return in_array('authenticated user', $user->roles);
}
否则,正如berkes所说,您的访问回调必须返回TRUE,该用户才能看到页面。例如:

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

如果用户具有“已验证用户”角色,则返回TRUE;如果没有,则返回FALSE。

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

'access callback' => TRUE,
function my_access() {
  global $user;
  return in_array('authenticated user', $user->roles);
}
否则,正如berkes所说,您的访问回调必须返回TRUE,该用户才能看到页面。例如:

'access callback' => TRUE,
function my_access() {
  global $user;
  return in_array('authenticated user', $user->roles);
}
如果用户具有“已验证用户”角色,则返回TRUE;如果没有,则返回FALSE