有没有人可以告诉/指导我设置Drupal的最简单方法,使用户只能看到管理员认为可查看的页面?例如,我需要user1和user2,每个都有一个特定于他们的登录页面,其他人看不到。
我已经在这上面花了6-7个小时,但没有成功,这简直是疯了!我尝试了v6和v7,按角色的权限,按节点的权限,分类访问控制等。无论我做什么,都不会阻止user1查看主页2。我认为这在Drupal中是非常基本的。
提前感谢您的帮助。
发布于 2011-10-12 00:26:43
有几种方法可以做到这一点。
发布于 2011-10-12 02:38:31
我总是设法通过内容访问模块来执行您所要求的。
您还可以在页面的代码中尝试它,方法是将它包装在限制谁可以看到该代码的代码段中,例如;
<?php
global $user;
if($user->roles[3] || $user->roles[4]){
//only for admins or moderators
}
if($user->roles[0] || $user->roles[1] || $user->roles[DRUPAL_ANONYMOUS_RID] || user_is_anonymous()){
//everyone else
}
?>您也可以通过用户ID来确定允许的部分,尽管您需要首先知道相关的Id,例如,管理员应该是$user->uid[1]
关于成员资格的长度,您可以通过访问user表中的created值来获得创建用户的日期,该表应该返回一个unix时间戳。$usercreated=$user->created;
要将其转换为更具可读性的日期,可以使用PHP的strftime()函数;$usercreated=date('d M, Y',strftime($user->created));
要计算出用户已注册的天数,您可以始终尝试:$days_since=abs(ceil(( strtotime("now") - $user->created )/86400));
有关所有可用用户挂钩的列表,请查看http://api.drupal.org/api/drupal/developer--globals.php/global/user/6
https://stackoverflow.com/questions/7727940
复制相似问题