首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal-按用户名显示内容

Drupal-按用户名显示内容
EN

Stack Overflow用户
提问于 2011-10-11 22:47:57
回答 2查看 126关注 0票数 0

有没有人可以告诉/指导我设置Drupal的最简单方法,使用户只能看到管理员认为可查看的页面?例如,我需要user1和user2,每个都有一个特定于他们的登录页面,其他人看不到。

我已经在这上面花了6-7个小时,但没有成功,这简直是疯了!我尝试了v6和v7,按角色的权限,按节点的权限,分类访问控制等。无论我做什么,都不会阻止user1查看主页2。我认为这在Drupal中是非常基本的。

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-12 00:26:43

有几种方法可以做到这一点。

  1. 使用有机组并将每个用户分配到不同的组,然后使每个页面只能由特定的组访问
  2. 主页使用面板并设置每个面板的访问权限以指定哪些用户角色可以查看该页面(每个用户都需要分配一个角色)
  3. 通过template.php (http://www.grasmash.com/node/41可能会帮助您开始)或page.tpl.php中的函数检查用户的角色内容访问模块-Drupal.org/
  4. / Content _ access。我发现它可以很好地限制或共享基于每个用户或每个角色的内容
票数 0
EN

Stack Overflow用户

发布于 2011-10-12 02:38:31

我总是设法通过内容访问模块来执行您所要求的。

您还可以在页面的代码中尝试它,方法是将它包装在限制谁可以看到该代码的代码段中,例如;

代码语言:javascript
复制
<?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;

要将其转换为更具可读性的日期,可以使用PHPstrftime()函数;$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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7727940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档