有人可以在Drupal中解释“访问参数”吗?相信我,我试过谷歌搜索它,但我只是没有明确掌握。
答案 0 :(得分:13)
在/ admin / user / permissions中,您将看到许多访问选项。它们来自drupal模块,并允许站点管理员向用户角色分发特定权限(drupal默认提供“匿名”和“注册”角色)。 模块通过hook_perm声明它们,它们很容易使用:
function mymodulename_perm {
return array('use custom feature', 'use the other custom feature');
}
他们将出现在那里,随时可以使用。现在,在您的任何功能中,您可以通过user_access检查用户访问权限,这一点同样易于使用:
if (user_access('use custom feature')) {
//do something
}
答案 1 :(得分:9)
访问参数是传递给函数的参数,用于检查用户是否有权访问菜单。
给出菜单回调定义如下
$items['blog/feed'] = array(
'title' => 'RSS feed',
'page callback' => 'blog_feed',
'access callback' => 'custom_module_blog_access',
'access arguments' => array('feed'),
'type' => MENU_CALLBACK,
);
函数custom_module_blog_access()
将被称为custom_module_blog_access('feed')
。如果函数返回TRUE
,则用户将被授予对菜单回调的访问权限;不同的是,用户将看到错误403页面(访问被拒绝)。
通常,未定义访问回调,默认情况下,Drupal将使用user_access()
。
答案 2 :(得分:0)
使用预定义的有效权限,例如系统权限:
复制权限字符串并将其添加到您的访问参数'数组:
function mymodule_menu() {
$items['admin/config/mymodule_config'] = [
'title' => 'MyModule',
'page callback' => 'drupal_get_form',
'access callback' => '_mymodule_admin_form',
'access arguments' => array('administer site configuration'),
'type' => MENU_CALLBACK
];
return $items;
}