Что делает функция theme_comment_thread_expanded в модуле комментариев drupal? - PullRequest
0 голосов
/ 14 февраля 2011
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);

}

Я плохо понимаю эту функцию.Я надеюсь, что кто-то здесь может помочь объяснить это.Спасибо.

1 Ответ

2 голосов
/ 18 февраля 2011

Он собирает ссылки для комментариев из всех модулей, которые реализуют hook_link (), и форматирует их с помощью функций темы (theme_comment_view).

Edit:
Чтобы уточнить (и включить комментарий jp):

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

Это вызывает функцию hook_link() для всех модулей, которые ее реализуют (то есть modulename_link()) с аргументами функции 'comment', $ comment и 0. Эти модули возвращают ссылки для размещения под комментариями (например, модуль кавычек) возвращает ссылку для добавления комментариев с предыдущей цитатой). Функция 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()).

...