Подскажите, как отделить комментарии от тела ноды?
Комментарии выводятся вместе с основным контентом переменной $content в node.tpl.php.
Никак не соображу, как разместить свой регион между телом ноды и комментариями к ней. Т.е. непосредственно за телом ноды должен идти мой регион (Статьи по теме), а уже после него выводиться комментарии.
Думаю, что необходимо разбирать $content на составляющие и внедрять регион в неё. Ткните в правильную сторону плиз.
Вот так у меня сейчас выглядит низ ноды.
Хочется сделать вот так.
Извените если вопрос на самом деле глупый, здорово запутался.
P.S. Поиск от гугля по этому сайту просто ужасен. При наличии слова "Комментарии" в запросе, большая часть результатов содержит малоинформативную фразу Выберите нужный метод показа комментариев и нажмите 'Применить'. Я думал гугол уже давно научился отделять контент от интерфейса.
Вложение | Размер |
---|---|
Форма комментариев и блок похожих статей | 32.33 КБ |
Поменять местами блок комментариев и блок похожих статей | 34.59 КБ |
Комментарии
Надо править
comment-wrapper.tpl.php или node.tpl.php с проверкой if ($page)
Для этого надо использовать hook_form_alter($form_id, &$form).
А вообще каменты вызываются в node.module не через какие-то переменные, а функциями:
function node_show() вызывает function comment_render($node, $cid = 0) из comment_module. В клинических лучаях вставляй вызов своей функции перед ней. Но это неправильный путь.
или hook_link - он добавляет ссылки в тот же регион, где находятся теги таксономии и т.д.
а еще я где-то встречал готовый модуль, который выносит комментарии в отдельную переменную.
если на сайте установлен views, сделать комменты блоком и выводить в нужный регион. хоть хедер )
comment_display - модуль может выводить $comment в page.tpl.php, но это скорее всего не совсем то что надо. Не хватило php-знаний для работы с этим модулем.
А как их сделать блоком? Views стоит, но как блоком вывести комментарии с формой комментирования внизу? Будьте добры, укажите пару-тройку важных шагов, куда кликать, что править. Комментарии в отдельном блоке - это идеальное решение в моем дизайне. Или может мы неправильно поняли друг-друга? В views есть "Последние комментарии", но в них нет формы.
Еще прошу разъяснить следующий момент
Если файл comment.tpl.php отвечает за вывод опубликованных комментариев, тогда какой tpl.php отвечает за вывод формы комментирования?
Как в comment-wrapper.tpl.php получить количество комментариев?
comment.tpl.php отвечает только за последовательность вывода отформатированого/отрендериного потока комментариев, который уже создан ранее.
Да, вроде с этим разобрался. И даже удалось сделать регион между телом ноды и комментариями )
Для полного счастья не хватает ответа на след. вопросы:
1. Каким tpl.php можно темизировать форму комментирования? Почему-то нет желания в template.php добавлять правила, т.к. шаблон становится сложен для понимания.
2. Как в comment-wrapper.tpl.php получить количество комментариев для этой ноды?
Расскройте секрет плиз )
Добавим новый регион после содержимого ноды, но перед комментариями.
1. В mytheme.info определим новый регион с помощью добавления след. строки:
2. В template.php темы добавим регион в набор переменных ноды
$variables['new_region'] = theme('blocks', 'new_region');
}
Если сейчас очистить кэш ( admin/settings/performance ) и несколько раз обновить страницу размещения блоков ( admin/build/block ), то вы сможете увидеть созданный регион в любом из выпадающих списков. Можно добавить в него нужный блок и сохранить изменения. Блок добавился и сохранился, но на странице не появился.
3. В node.tpl.php определим место для вывода нового региона. Мой node.tpl.php выглядит так.
Снова очищаем кэш и обновляем страницу с ожидаемым блоком. Радуемся.
Теперь возможности ограничены только вашими познаниями в css. С помощью подобных переменных можно осуществлять вывод блоков практически в любом месте ноды. Над заголовком, под заголовком, в содержимом ноды, под содержимым и т.д. Определяем регион, добавляем его в переменные ноды, выводим на экран.
У меня получилось вот так.
Осознал узость своего кругозора и ушел курить api.drupal.ru
Получить количество комментариев http://www.drupal.ru/node/23301
Сам комментарий темизировать получилось, теперь меня интересует - "Как все-таки выводить форму комментирования?"
спасибо, полезно
кстати, модуль content tamplate тоже много умеет
Вот например, в статье выводится директ и адсенс
Один минус, в версии для печати эта реклама также выводится
Да, количество комментариев получил как раз этим способом. А форму комментирования расчленил в template.php с помощью mytheme_comment_form($form)
Спасибо. Будем иметь ввиду