Вывод комментариев и формы комментариев в блоке

Главные вкладки

Аватар пользователя stillfinder stillfinder 17 ноября 2012 в 16:58

Бывает, что нужно вывести комментарии и форму их добавления в отдельном блоке, например, для вывода комментариев в табах quick tabs. Итак приступим

Создаем Views типа комментарии. В этом views создаем дисплей типа Блок. В нем вывод полей содержимого и заголовков комментариев.

Комментарий: Заголовок
Комментарий: Содержимое

В аргументах указываем следующее:
Комментарий: Nid
Подставим аргумент Nid "по умолчанию", PHP-Код и туда вписываем:
$path = $_GET['q'];
$path = explode('/', $path);
return $path[1];

В подвале нашего виевс выводим форму добавления комментариев. Для этого пишем туда следующий php код:
<?php
$path = $_GET['q'];
$path = explode('/', $path);
$nid_comment = $path[1];

$formComment = drupal_get_form('comment_form', array('nid' => $nid_comment ));
echo $formComment;
?>

Сохраняем views, выводим блок где нам нужно. Профит.

Оригинал статьи здесь

Комментарии

Аватар пользователя Andruxa Andruxa 17 ноября 2012 в 21:12

"ХулиGUN" wrote:
А если у человека настроен pathauto

$_GET['q'] вернет системный путь, а не алиас

вместо $_GET['q'] и эксплода можно пользоваться функцией arg(), например так:
$nid_comment = (arg(0)=='node' ? arg(1) : NULL);

Аватар пользователя MrLeader MrLeader 16 декабря 2012 в 19:24

Небольшой оффтоп: где в Drupal 6 можно указать, сколько максимально комментариев будет выводиться на странице?

Аватар пользователя stillfinder stillfinder 23 декабря 2012 в 16:16

MrLeader wrote:
Небольшой оффтоп: где в Drupal 6 можно указать, сколько максимально комментариев будет выводиться на странице?

Вроде как в настройках можно. На странице редактирования типа материала admin/structure/types/manage/page

Аватар пользователя MrLeader MrLeader 23 декабря 2012 в 17:07

stillfinder wrote:
На странице редактирования типа материала admin/structure/types/manage/page

Сообщение системы: Страница не найдена. Такой адрес не существует в друпал 6.

Уже нашел, для "заметки" кол-во выводимых комментов устанавливается тут: /admin/content/node-type/story

Вообще, у меня проблема в том, что в шестом друпале есть баг с адресами комментариев выводимых на последующих страницах. Т.е. если установлено количество выводимых комментов 10 то одинадцатый комментарий не выводится при нажатии на его ссылку, например в блоке "Последние комментарии". Ссылка создается без учета следующей страницы комментариев, как-будто коммент на первой странице. Я решил поставить максимальное число выводимых комментариев 300, чтобы страница с комментами была только одна, хотя и такое кол-во тоже может переполниться. Тогда не знаю, что буду делать. Может кто знает как бороться с этим багом?

Аватар пользователя Владислав888 Владислав888 10 июня 2013 в 13:30

Не могу не поделиться своим результатом в этом вопросе.

Ветка, конечно, старовата, но вот мой ответ, который я нашёл здесь.

Мне нужно было вставить кое-что между контентом и комментами (Drupal 7).

Пробовал и вьюху и модуль Commentsblock - суть одна - вьюха с блоком у которой получилось только воссоздать правильный порядок комментов (учитывая отношения комментов родители-дети при ответах):
- в отношениях ставишь: "Комментарий:родительский комментарий".
- убираешь сортировку по дате публикации.
- ставишь сортировку "Комментарий: Тема обсуждения" (которая становиться доступной после отношения с род. термином.)
- связь "Родительский комментарий" в сортировке выбирать не надо, почему-то.

Но никак не получалось воссоздать отступы справа (визуальную иерархию).

Решение не могло не найтись после многих мозговых штурмов.
Решил всё без Views.

В общем, создаём блок в котором такой код:

<?php
//загружаем ноду по системному URL
$node node_load(arg(1));
//получаем подготовленные к рендеру комментарии и форму.
$viewComs comment_node_page_additions($node);
print 
drupal_render($viewComs);
?>

Надеюсь будет полезно кому-нибудь.

Аватар пользователя stillfinder stillfinder 8 октября 2014 в 1:28

Антоха82 wrote:
Владислав888, мне было полезно. У меня как раз ситуация, когда нужно между нодой и комментами вставить капчу.

Рад, что оказалось полезным