Drupal 仅向注释作者和节点作者显示一些注释字段

Drupal 仅向注释作者和节点作者显示一些注释字段,drupal,permissions,comments,field,private,Drupal,Permissions,Comments,Field,Private,我有一个Drupal站点,我想创建一些评论字段(对于内容类型“event”),只有评论作者和评论节点作者才能看到。这些字段是“如何赎回此报价”、“日期”和“评论正文”。我尝试使用模块Private Comments,但这只提供了将整个注释设置为Private的选项,而不仅仅是一些字段。因此,我让一名开发人员创建了一个自定义模块,它可以正常工作,但在创建新注释时,上面指定的字段没有显示,应该显示。我猜这是因为在创建新注释时,尚未指定注释作者,因此我需要更改代码,以便在创建新注释(或查看注释表单)时

我有一个Drupal站点,我想创建一些评论字段(对于内容类型“event”),只有评论作者和评论节点作者才能看到。这些字段是“如何赎回此报价”、“日期”和“评论正文”。我尝试使用模块Private Comments,但这只提供了将整个注释设置为Private的选项,而不仅仅是一些字段。因此,我让一名开发人员创建了一个自定义模块,它可以正常工作,但在创建新注释时,上面指定的字段没有显示,应该显示。我猜这是因为在创建新注释时,尚未指定注释作者,因此我需要更改代码,以便在创建新注释(或查看注释表单)时,用户可以使用所有字段。有办法做到这一点吗?请参见下面的代码:

`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;
    }
  }
 }
}
 }
 }`

提前感谢您的帮助

我想你可以加上

!$cuid
看来

if (!$cuid || $user->uid == $cuid || $user->uid == $nuid)
因为当注释是新的时,$cuid应该是未定义的