Drupal 7渲染注释对象

时间:2013-02-04 17:12:22

标签: php drupal drupal-7

所以这就是我遇到的问题。如果我有一个评论对象,我想创建一个使用该评论的显示设置的可渲染数组。截至目前,这就是我所拥有的:

$commentNew = comment_load($var);
$reply[] = field_view_value('comment', $commentNew, 'comment_body', $commentNew->comment_body['und'][0]);

哪个工作正常,因为我没有为身体设置任何特定设置。但我也有图像字段和视频嵌入字段,我需要在系统中设置它们的方式。我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

Drupal核心使用comment_view()函数执行此操作:

$comment = comment_load($var);
$node = node_load($comment->nid);
$view_mode = 'full'; // Or whatever view mode is appropriate
$build = comment_view($comment, $node, $view_mode);

如果您需要更改默认字段中的特定字段,请使用hook_comment_view()

function MYMODULE_comment_view($comment, $view_mode, $langcode) {
  $comment->content['body'] = array('#markup' => 'something');
}

或者根据需要编辑从$build收到的comment_view()数组,如果实现挂钩不适用于您的用例。