0
function theme_comment_thread_expanded($comment, $node) {

    $links = module_invoke_all('link', 'comment', $comment, 0);

    drupal_alter('link', $links, $node, $comment);

    return theme('comment_view', $comment, $node, $links);

}

この機能がよくわかりません。ここの誰かがそれを説明するのを手伝ってくれることを願っています. ありがとうございました。

4

1 に答える 1

2

hook_link() を実装するすべてのモジュールからコメントへのリンクを収集し、それらをテーマ関数 (theme_comment_view) でフォーマットします。

編集:
明確にするために(そしてjpのコメントを含めるために):

$links = module_invoke_all('link', 'comment', $comment, 0);

これは、関数引数 'comment'、$comment および 0 を使用して、hook_link()それを実装するすべてのモジュール (つまりmodulename_link()) の関数を呼び出します。これらのモジュールは、コメントの下に配置されるリンクを返します (たとえば、quote モジュールは、前のモジュールにコメントを追加するためのリンクを返します)。一つ引用)。関数module_invoke_all()はこれらのリンクを蓄積して返します。

drupal_alter('link', $links, $node, $comment);

この呼び出しは、前の呼び出しと似ています。実装するモジュールを呼び出しhook_link_alter()、リンクを変更できるようにします。

return theme('comment_view', $comment, $node, $links);

これは、テーマ フック「comment_view」を呼び出して、コメント リンクをフォーマットします。通常、このフックのデフォルトの実装があり、テーマはそれをオーバーライドできます。

関数全体theme_comment_thread_expanded()をオーバーライドすることもできます (例: yourtheme_comment_thread_expanded())。

于 2011-02-18T13:14:40.017 に答える