显示一些注释字段,仅对作者和节点作者发表评论

时间:2014-03-12 16:46:12

标签: drupal permissions comments field private

我有一个Drupal网站,并且想要评论作者和评论节点作者只能看到一些评论字段(对于内容类型“事件”)。这些字段是“field_how_to_redeem_this_offer”,“field_date”和“comment_body”。我尝试使用模块私有注释,但这只能让你选择将整个注释设为私有,而不只是一些字段。所以,我有一个开发人员创建一个自定义模块,它工作,除了,当创建一个新的注释时,我上面指定的字段不会显示,它们应该是。我猜这是因为在创建新评论时评论作者尚未分配,所以我需要更改代码,以便在创建新评论(或查看评论表单)时,所有字段都应该可用于用户。有没有办法做到这一点?请参阅下面的代码:

`function bidonmybash_field_access($op, $field, $entity_type, $entity, $account) {
 global $user;
 $fields = array('field_how_to_reedem_this_offer','field_date','comment_body');
 if (in_array($field['field_name'],$fields)) {
 if ($entity) {
 if (isset($entity->node_type)) {
  if ($entity->node_type == 'comment_node_event') {
    $cuid = $entity->uid;
    $node = node_load($entity->nid);
    $nuid = $node->uid;
    if ($user->uid == $cuid || $user->uid == $nuid) {
      return TRUE;
    }
    else {
      return FALSE;
    }
  }
 }
}
 }
 }`

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为你可以添加

!$cuid

所以它看起来像

if (!$cuid || $user->uid == $cuid || $user->uid == $nuid)

因为当评论是新的时,$ cuid应该是未定义的。