• урок
  • pantey

Список переменных для создания comment.tpl.php

21.06.2012

Файл «comment.tpl.php» является необязательным, но если вы хотите организовывать комментарии к свои записям или статьям на сайте, то данный файл вам необходим. Именно «comment.tpl.php» отвечает за вывод комментариев на сайте.

Вот так вывод представлен по умолчанию в Drupal 7:

  • $title - заголовок коммента в виде ссылки
  • $new - выводит сообщение, если комментарий новый
  • $author - автор комментария. В зависимости от дизайна, может быть выведен как ссылкой, так и текстом
  • $picture – вывод аватарки пользователя создавшего комментарий
  • $content - содержимое комментария
  • $signature - подпись пользователя
  • $status - статус комментария.(опубликован, не опубликован, превью ) .Значения: comment-unpublished, comment-published или comment-preview
  • $date - дата создания комментария. Выводится как: format_date($comment->timestamp, 'custom', 'j m'),где вместо j можно писать любой «php-формат» даты.
  • $links - выводит ссылки комментария.
  • $submitted - выводит на одной строке дату и автора комментария

Объекты:

  • $comment - объект с абсолютно всем содержимым комментария
  • $node - объект статьи, к которой относится комментарий
-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (14)

Profile picture for user 1541
Согдиана
09.06.2013

Друпал 7. Для вывода даты без ссылки на комментарий нужно вставить код?:

Я вставила этот код, но почему то ничего не отображается.

Еще один вопрос. Я хочу добавить название статьи к "1 комментарий" который отображается вначале всех комментариев.
Сама попробовала добавить код:

, но заголовок статьи не отображается. Я хочу отобразилось так:
1 комментарий к Как готовить суп.
И после этого будут все комментарии этой статьи. Пожалуйста, посоветуйте, как это реализовать.

Profile picture for user 1541
Согдиана
10.06.2013

Здравствуйте! Может в друпал 7 нет такой возможности как в вордпресс? Я уже второй день не могу найти ответ на вопрос как отобразить Название статьи рядом с Началом комментов - 1 Комментарий к тут название статьи к которой относятся комментарии. Искала даже в англоязычном друпал, но не нашла ответ. Может я запрос не правильно давала? Если знаете ответ, пожалуйста, поделитесь. Спасибо.

Profile picture for user pantey
pantey
10.06.2013

В drupal есть всё, только разработка под Drupal строится в первую очередь на программном коде, хуках и модулях. В Drupal за вывод ноды и вывод комментариев отвечают два совершенно разных шаблонных файла, для ноды

node.tpl.php

для комментариев

comment.tpl.php

если вы знаете PHP ООП, то наверняка должны догадываться,что для того, что воспользоваться объектом из другого файла (node.tpl.php) вам необходимо написать запрос до него из файла (comment.tpl.php). Вот здесь можно посмотреть как строиться ф-я. Если вам будет проще, то можете воспользоваться JS и тупо забирать заголовок из начала статьи и вставлять перед первым комментом - но это не по правилам API Drupal.

Profile picture for user 1541
Согдиана
11.06.2013

Спасибо что ответили. Я конечно не хочу противоречить правилам Api Drupal, но с другой стороны, я не поняла как создать функцию, которая выводить название материала в начале комментариев. Там я нашла следующий код

node_load($nid = NULL, $vid = NULL, $reset = FALSE)

, но не знаю как использовать его и куда что прописать. Не могли дать пример кода, который выведет название статьи.

Profile picture for user pantey
pantey
11.06.2013

заголовок можно вот так вывести

<?php print $node->title;?>
Profile picture for user 1541
Согдиана
11.06.2013

С помощью этого удалось вывести название статьи.Работает отлично. Я также попробовала сделать так:

field_exclusive_recipe;?>

чтобы вывести значение из поля Эксклюзивный рецепт. Но в данном случае, код не сработал.
То есть, значение поля field_exclusive_recipe тоже нужно отобразить в начале комментариев. Как это можно реализовать? Если возможно приведите пример.
Надеюсь, я не достала вас своими вопросами. Надеюсь на ваше понимание и поддержку. Спасибо.

Profile picture for user 1541
Kevin
08.05.2014

и посмотреть какие методы(поля) доступны

Profile picture for user 1541
Согдиана
11.06.2013

Еще хотела узнать, как можно отобразить значение из field, а не title статьи? Это тоже там же.

Profile picture for user 1541
Дмитрий
02.05.2014

Доброй ночи! скажите как отредактировать страницу редактирования комментария? пример comment/5/edit

Profile picture for user 1541
Артур
25.04.2015

А как вывести поле field_profile_city из профиля в comment.tpl.php ?
Чтобы под переменной author выводился город пользователя?

Profile picture for user pantey
pantey
25.04.2015

правильно через

template_preprocess_comment()

и в нем через

global $user;

вытащить все, что вам нужно.
не правильно определить глобальную переменную внутри

comment.tpl.php
Profile picture for user 1541
Артур
25.04.2015

Пробую делать через template_preprocess_comment()

function professional_theme_preprocess_comment(&$variables) {
$user = $variables['user'];
// Full load user
$user = user_load($user->uid);
// Now access your field
$city = field_get_items('user', $user, 'field_uzer_city');

if ($city) {
$variables['author_city'] = $city[0]['value'];
}
else {
$variables['author_city'] = '';
}

}

Выводит значение если поле текстовое, а если термин словаря, то не выводит
Пробую добавить

    $term_id = $city[0]['value'];
 $term = taxonomy_term_load($term_id);
 $variables['author_city']=$term->name;

Не получается, ничего не выводит.

Profile picture for user 1541
Артур
25.04.2015

Добавил

    $term_id = $city[0]['tid'];
    $term = taxonomy_term_load($term_id);
    $variables['author_city']=$term->name;

Получил то, что нужно

Но выводит для автора ноды, а мне надо для автора коментария

Меняю

  $comment = $variables['comment'];
  $user = comment_load($comment->uid);

И ничего не получаю.

Profile picture for user 1541
Артур
25.04.2015

Получилось

$user = $variables['user'];
$comment = $variables['comment'];

$user = user_load(array('uid' => $comment->uid));