我有一个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;
}
}
}
}
}
}`
提前感谢您的帮助!
答案 0 :(得分:0)
我认为你可以添加
!$cuid
所以它看起来像
if (!$cuid || $user->uid == $cuid || $user->uid == $nuid)
因为当评论是新的时,$ cuid应该是未定义的。