[英]Controlling which comments are shown based on role in Drupal
这是一个奇怪的事情,并不理想,但是基本上我们有一个Drupal站点,该站点一直在使用核心评论模块,以允许经过身份验证的用户发布和查看节点的评论。 现在,我们需要扩展它,以便未经身份验证的用户也可以发表评论,但不能查看它们。 经过身份验证的用户只能访问其他经过身份验证的用户的评论。 只有管理员用户有权查看所有评论。
有办法吗? 权限似乎不允许这种灵活性(向用户提供表单需要访问注释,但显示所有批准的注释)。
我已经研究过使用一些Drupal挂钩,但据我所知,只有在检索到注释后才会出现hook_comment函数(也许有一种很好的方法可以利用它,但是我的头脑已经一片空白)。
有什么建议么? 我很高兴隐藏某些用户的评论,但允许他们发布评论可能不是最佳做法; 但是,我需要使用已有的东西。
我可以想到一种解决此问题的方法,但这不是最漂亮的解决方案。
现在存在一些问题,因为可以对注释进行线程化,因此从理论上讲,线程中的注释可能会丢失,从而导致混乱和其他错误。
但是就像我说的,这是一个快速而又肮脏的解决方案,它具有您所得到的。
您不能使用评论审核队列来实现这一目标吗? 检查评论模块的设置(在admin / content / comment处)。
您可以在主题template.php中设置是否要让匿名用户仅通过检查用户是否登录来查看评论,如果不登录则不显示评论。
例如:
function mytheme_preprocess_comment(&$vars, $hook) {
global $user;
if (!$user->uid) {
unset($vars);
}
}
然后在顶部的comment.tpl.php中:
if ( isset($content) ) :
检查注释是否未设置,以免渲染大量空div。
毫无疑问,有更好的方法可以执行此操作,其中包括使用钩子避免为匿名用户完全加载注释,但是此代码可以完成很多工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.