1

これが私が直面している問題です。コメント オブジェクトがある場合、そのコメントの表示設定を使用するレンダリング可能な配列を作成したいと考えています。今のところ、これは私が持っているものです:

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

本体に特定の設定をセットアップしていないため、これは正常に機能します。しかし、システムで設定されている方法でレンダリングする必要がある画像フィールドとビデオ埋め込みフィールドもあります。どうすればそれを行うことができますか?

4

1 に答える 1

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()

于 2013-02-04T17:58:44.097 に答える