static_rocket_468x60.jpg

Настраиваем комментарии в Drupal. Начальный уровень.

Комментарии для блога важны не меньше чем контент. Через комментарии мы получаем обратную связь, а иногда и спам. Сегодня будем делать форму комментариев, максимально удобную для честных пользователей и не пропускающую спамеров. Плюс пара полезных плюшек.

Первое что нужно это разрешить нашим посетителям оставлять комментарии. В статье про роли и разрешения рассказано как разрешать или запрещать действия на сайте в зависимости от статуса пользователя. Переходим в меню People - permission и видим такую картинку.

разрешаем пользователям комментировать

В первом столбце отмечаются доступные опции для незарегистрированных пользователей - ананимусов. Просмотр комментариев(View comments) открывает для всех. То же самое и с размещением комментариев(Post comments). Если мы будем просить пользователя зарегистрироваться перед комментированием то ему придётся сделать несколько дополнительных шагов:

  1. Заполнить форму регистрации.
  2. Подтвердить регистрацию.
  3. Вернутся на страницу.
  4. Ура я могу комментировать.

Не многие доберутся до четвёртого пункта. Скажу вам больше, мало кто возьмётся за этот квест. Что касается спамеров, их таким образом не отпугнуть. Разрешив публиковать комментарии мы всё же оставляем последнее слово за собой. Следующим пунктом в списке разрешений идёт публиковать комментарии без проверки(Skip comment approval). Как видно на скрине эта опция отключена для незарегистрированных. То есть коммент будет принят на модерацию и появиться на страницах сайта только после вашего одобрения.

Включаем комментарии

Теперь нам нужно включить и настроить комментарии для типов контента. Настроим комментарии для типа контента Article. Перейдём Structure → Content types → Article. Открываем вкладку настройки комментариев.

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

Для включения комментариев в выпадающем списке Default comment setting for new content выбираем Open. Ниже идёт чекбокс Threading, который включает древовидный список комментариев. Дальше указываем сколько комментариев будет отображено на странице. Следующая опция представляет для нас особый интерес. Это опция определяет какую информацию о себе будут оставлять не зарегистрированные пользователи. Нам предлагают три варианта

  1. Анонимные пользователи могут не оставлять о себе информацию.
  2. Анонимные пользователи могут оставлять информацию.
  3. Анонимные пользователи должны оставлять информацию

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

Далее идут два чекбокса. Первый включает заголовок комментария. Второй определяет нужно ли показывать форму ответа на той же странице. Последним идёт блок настроек предпросмотра. Я обычно отключаю.

После всех этих манипуляций форма комментариев у меня выглядит как на скрине ниже.

стандартная форма комментариев Drupal

Выглядит очень даже ничего, но можно лучше. Мне никогда не нравилось описание фильтров и ссылка под полем комментария. Напрягало это не меня одного. Мы имеем несколько вариантов решения этой проблемы. Правку файлов и создание функций мы рассматривать не будем, во всяком случае не сегодня, а вот с полезным модулем познакомимся.

Улучшаем внешний вид формы комментариев.

Чтобы убрать всё лишнее из формы комментариев воспользуемся модулем Better Format. После установки модуля переходим к редактированию прав доступа people - Permission.

better formats

После установки модуль уже настроил всё как надо, но всё же пройдёмся по пунктам.

  1. Show format tips - вывод описания фильтров.
  2. Show more format tips link - вывод ссылки на статью о режимах форматирования.
  3. Show format selection for comments - отключает возможность выбора режима форматирования в комментариях если пользователю доступно несколько.

Следующие три пункта дают нам возможность отключать возможность выбора режима форматирования при добавлении контента или заполнении других текстовых полей. Настройки представленные на картинке выводят для не зарегистрированных и зарегистрированных пользователей вот такую форму.

облегчённая форма комментариев

Ещё пару слов о настройках Better Format. Как было сказано наш модуль редактирует не только форму добавления комментариев. Первые два пункта удаляют описания фильтров не только из комментов, а из всех форм добавления текста. Блок выбора режима форматирования можно отключать/подключать для каждого случая. В настройках на картинке он включён для зарегистрированных пользователей при добавлении статьи.

Подписываем пользователя на новые комментарии.

Подписка на комментарии вещь необходимая. Посетители задают вопросы или общаются друг с другом посредством комментов. Без подписки они просто не вспомнят на каком сайте и на какой странице они общались.

К сожаленью Drupal из коробки не может дать пользователю возможность подписаться на комментарии. Но для нас, осиливших установку Друпал и ставивших модули и темы, установить ещё один не проблема. Тем более адресок имеется, вот он http://drupal.org/project/comment_notify.

Модуль Comment Notify устанавливается как обычно. После установки переходим People → Permissions и разрешаем всем подписываться.

Следующий шаг - разрешить пользователям оставлять контактную информацию. О том ка это сделать читайте выше включаем комментарии.

Теперь перейдём Configuration → People → Comment Notify

настраиваем пподписку на комментарии

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

Следующая опция отмечает какие режимы подписки будут включены. Мы можем предложить подписаться на все комменты или только на комментарии написанные в ответ на оставленный посетителем. Нужно выбрать хотябы один режим.

Далее мы настраиваем режимы по умолчанию. Нужно понимать что выбрав здесь один из двух режимов вы подписываете человека оставившего комментарий даже если он не собирался подписываться. Последняя опция подписывает на комменты автора статьи.

На последок нам предлагают составить текст письма, которое будут получать подписавшиеся. При этом модуль Token, выручивший нас при составлении чистых урлов, очень нам поможет. Список доступных токенов находиться под шаблонами. Немного подправив исходный вариант у меня получился такой шаблон.

шаблон письма рассылки

При редактировании шаблона не удаляйте ссылку на отписку от рассылки [comment-subscribed:unsubscribe-url]. В каждом письме должна быть возможность отказаться от рассылки.

Чтобы письма доходили нужен адрес отправителя на домене сайта. То есть выглядеть адрес должен так название_ящика@ваш_домен. Получить такой ящик просто. Всё что нужно - внимательно посмотреть на панель управления хостингом. Практически все хостеры предлагают услугу почтовый менеджер или что-то в этом роде. Сложностей возникнуть не должно. Но есть ещё один вариант поставить яндекс почту для своего домена. У яндекса есть подробная инструкция как это сделать.

На сегодня думаю хватит. У нас теперь есть удобная форма комментариев. Но мы не решили вопрос со спамом. Как я уже говорил поле сайт оключается вместе с полем e-mail, а без него не возможна подписка. Одним из вариантов решения этой проблемы - проверка комментов перед публикацией. Но бывают случай когда спамят на автомате и разгребать всё это вручную не хотелось бы. В следующих статьях я расскажу как отсеивать спам, как убрать поле сайт оставив поле e-mail, попробуем найти альтернативу друпаловской форме комментариев.

Возникнут вопросы пишите комменты или в контакты. Мой вконтакты есть в футере↓ или на странице обо мне.

оценить статью: 
Средняя: 4.2 (27 оценок)

Комментарии

42
Аватар пользователя keereel

keereel пн, 04/14/2014 - 10:40

Спасибо, по инструкции сделал на нескольких сайтах, стало лучше :) Это как раз из тех мелочей, на которые особо внимания не обращаешь, но, при этом, они влияют на общую картину. А что за лаконичный редактор подключён у вас к форме комментария?

Аватар пользователя Oleg

Oleg пн, 04/14/2014 - 21:53

TinyMCE с минимумом кнопок и максимумом фильтров.

Аватар пользователя Oleg

Oleg пн, 04/14/2014 - 22:12

Со временем у меня появилась привычка смотреть сайты двумя плагинами firebag и rds.  У меня к вам вопрос. У вас такой интересный способ внутренней оптимизации или просто так получилось.

Аватар пользователя keereel

keereel пн, 04/14/2014 - 23:47

А как - "так"? :) Сайт старый, много чего там периодически делалось, так что может и специально, а может и случайно.. Расскажите, что нарыли, постараюсь ответить :)

Аватар пользователя Oleg

Oleg вт, 04/15/2014 - 22:07

На то что кое какая оптимизация проводилась указывает наличие robots.txt и XML карты сайта. Кроме этого прописаны канонические УРЛы и настроены ЧПУ.

При ближайщем рассмотрении оказалось что робо файл дефолтный. Нет 301 редиректа на основное зеркало это в принципе не страшно если указать основное зеркало в робофайле или панели вебмастера. У вас яндекс основным считает домен без www, а гугл с www. Иногда попадались очень большие description.

Аватар пользователя VVX

VVX пн, 10/20/2014 - 15:52

а как редактировать поля комментариеВ? модуль этот запустил, надеясь на наличие этой функции.. но её не оказалось :( как убрать из комментариев, е-мейл, к примеру?

Аватар пользователя Oleg

Oleg вт, 10/21/2014 - 11:53

Поле e-mail убирается без дополнительных модулей. Переходим в меню структура→типы материалов→ Article(или любой другой тип контента) На вкладке настройка комментариев в выпадающем списке Анонимные комментарии выбираем Анонимные пользователи не могут оставлять контактную информацию. После этого в форме комментариев останется только имя

Аватар пользователя Женя

Женя пт, 10/24/2014 - 16:28

Добрый день, немного оффт, но всеже по теме комментариев, вот у вас на сайте, если комментариев к статье нет, то заголовок "Комментарии" не отображается, расскажите пожалуйста, как этого добиться.

скрин https://drive.google.com/file/d/0B2dAAmWln723QmNwRDNYaDVvXzQ/view?usp=sharing

Аватар пользователя Женя

Женя пт, 10/24/2014 - 17:10

как обычно, задашь вопрос, и находишь решение самостоятельно, может комупригодится 

$node->comments > 0

Аватар пользователя Oleg

Oleg пт, 10/24/2014 - 21:56

Здравствуйте Женя. Я не могу отслеживать и отвечать на комменты 24 аса в сутки, Как правило на это уходит минут 30 в день.

Никогда не сталкивался с такой проблемой. Большое человеческое вам спасибо что вернулись и рассказали как исправить.

 

Аватар пользователя Женя

Женя пт, 10/24/2014 - 22:49

Вы меня не так поняли, просто так часто бывает, что ищешь какой-то ответ или решение, но найти не можешь, и только стоит задать по этой теме вопрос, как решение находится само. А, Вам, большое спасибо за статьи

Аватар пользователя Oleg

Oleg пт, 10/24/2014 - 23:01

Рад что вам у нас понравилось приходите ещё. Иногда быстрее можно получить ответ в скайпе или по почте, но тогда остальные читатели не узнают.

Планирую отключить модерацию коментариев и сделать форум где можно будет задаваь вопросы не по теме. Думаю будет полезно читателям и сайту

Аватар пользователя kruss

kruss ср, 12/24/2014 - 21:51

Скажите, а как сделать чтобы человек заполнив поля сразу регистрровался или же авторизировался если есть аккаунт на сайте?

Аватар пользователя Oleg

Oleg чт, 12/25/2014 - 22:54

Авторизация на сайте через форму комментирования не лучшая идея. Как такое сделать не представляю. 

Аватар пользователя Женя

Женя сб, 05/09/2015 - 12:36

Все делал уже - не пойму, что не так - не отображаются комментарии вообще...Посмотрите, пожалуйста, посоветуйте, как решить проблему... http://vosne.org

Аватар пользователя Oleg

Oleg сб, 05/09/2015 - 15:44

Если нет формы комментариев то

  1. не включён модуль
  2. нет разрешения на комментирование
  3. не включены комментарии для типа материала.

На странице редактирования материала в самом низу, где настройки метатегов url и прочего, должна быть вкладка настройки комментариев если такой вкладки нет значит не включён модуль. Если вкладка есть но комменты отключены переходите в меню структура - тип материалов и далее к нужному типу материала и там настраиваете комментарии.

Аватар пользователя Oleg

Oleg сб, 05/09/2015 - 15:53

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

Аватар пользователя Евгений

Евгений сб, 05/09/2015 - 16:06

Как подключить запросом к базе данных?

Аватар пользователя Oleg

Oleg сб, 05/09/2015 - 16:37

Как делать можно почитать тут http://www.drupal.ru/node/63004

пробовать лучше на тестовом сайте

Аватар пользователя Pavel

Pavel ср, 05/13/2015 - 11:21

Здравствуйте, Олег! У Вас замечательный сайт, как раз то что нужно для новичка.

Начал изучать Drupal, возники проблемы с формой комментариев, если есть такая возможность - помогите пожалуйста. Все касается комментариев и их отображения:

1. В настройках материала отключил вывод заголовка для комментария. При создании комментария поле НЕ отображается, а вот при отображении комментария - поле отображается, и текст содержится такой же как и в поле комментарий (скрин http://joxi.ru/12M7w9RibD5VrJ). Проверял в настройках материала, вкладка "Отображение комментария", данное поле вообще отсуствует, и скрыть его не представляется возможным (скрин http://joxi.ru/n2YRw9JS6gNRA6). Как это решается? путем правки шаблона?

2. Добавил модуль "comment_notify". Включил но в форме комментария отсуствуют поля "Домашняя страница" и "E-mail". Их нужно создавать отдельно?

3. Если эти поля нужно создавать отдельно, то возникате еще одна проблема. В настройках материала, вкладка "Поля комментария", поле с подпиской (Comment Notify settings) переместил вниз (как у Вас на сайте), сохранил (скрин http://joxi.ru/a2Xaw9NI5X6LAg), но поле все равно отображается не в низу (скрин http://joxi.ru/D2PVw9nuz3nDr3)

 

Заранее благодарен

Аватар пользователя Oleg

Oleg ср, 05/13/2015 - 14:38

Рад что Вам у нас понравилось.

1. Поле заголовок отключается в форме но в шаблоне вывода комментариев код отвечающий за вывод заголовка остаётся и ему не остаётся ничего другого как взять часть текста из самого коммента. Чтобы убрать заголовок нужно отредактировать файл comment.tpl.php. Файл этот должен находиться в папке с темой. Если его там нет ищите в папке с модулем comment и потом скопируйте его в папку с темой. Редактируемый файл должен находиться в папке с темой. В этом файле нужно удалить строки

  <?php print render($title_prefix); ?>

  <h3<?php print $title_attributes; ?>><?php print $title ?></h3>

  <?php print render($title_suffix); ?>

Немного о шаблонах можно почитать тут http://webonlife.ru/sozdanie-sayta/fayly-temy-drupal-temizaciya

2. Поля не нужно создовать отдельно. При создании/редактировании типа материала в настройках комментариев для ананимусов выбираем вариант - пользователи должны оставлять информацию. Таким образом в форме комментариев появиться поля email и сайт. В настройках полей для комментариев будет две записи первая комментарий вторая comment notify. Должно сработать как надо

Аватар пользователя Pavel

Pavel чт, 05/14/2015 - 08:41

Спасибо за помощь и оперативность. Сейчас буду разбираться.

Аватар пользователя SVET

SVET ср, 02/03/2016 - 15:21

Здравствуйте, подскажите пожалуйста как убрать ссылку "добавить комментарий" из вывода или как подружить AJAX Comments и Display Suite. Измучилась уже с выводом материала. Либо Fivestar не активно, либо выводится со ссылкой "добавить комментарий" и блок комментариев не добавляет новые комментарии без обновления страницы, а после обновления в форме остается текст отправленного комментария. Спасибо.

Аватар пользователя Oleg

Oleg чт, 02/04/2016 - 22:51

Удалить ссылку добавить комментарий - в файле node.tpl.php удалите строку 

<?php print render($content['links']); ?>

Не совсем понял в чём проблема и причём тут fivestar. Если совет не помог расскажите подробнее

Аватар пользователя SVET

SVET пт, 02/05/2016 - 00:13

Здравствуйте, Олег. Спасибо за быстрый ответ. Третью неделю ковыряюсь со страницей материала. Мне нужно вывести материал с возможностью оценки по центру страницы, а сбоку форму добавления комментария и сами комментарии. Получается совсем ужасно, не думала, что это станет проблемой. "Готовый к выводу материал" отображается целиком по центру, вывожу по полям, но ссылка "добавить комментарий" остается. И все бы ничего, но она не кликабельна, хотя модуль AJAX Comments стоит. С выводом комментариев тоже что-то непонятное. Первый комментарий не добавляется без обновления страницы, ответ на комментарий выводит ошибку на весь экран( [{"command":"settings","settings":{"basePath":"\/","pathPrefix":"","ajaxPageState":), или пишет :Поле "Comment" обязательно для заполнения". При всем этом в консоли ошибки
Uncaught [CKEDITOR.editor] The instance "edit-comment-body-und-0-value" already exists или не найден
Uncaught TypeError: Cannot read property 'document' of null

не могу понять что конфликтует...и редактор меняла, и DS пробовала вместо In-Place Editor - никак. Понимаю, что меня легче убить, но я перерыла всю информацию, которую смогла найти и ничего...Только AJAX Comments отключить, но тогда совсем неудобно получается. Fivestar отображался не кликабельно, сейчас стоит rate...может в нем проблема? Сломала голову...Может Вы что-нибудь подскажете... Большое спасибо.

Аватар пользователя Oleg

Oleg пт, 02/05/2016 - 10:59

Вам обязательно пользоваться AJAX Comments. Проблема с первым комментарием вроде бы решается патчем https://www.drupal.org/node/2506853

Аватар пользователя SVET

SVET пт, 02/19/2016 - 20:35

Здравствуйте, Олег. Спасибо Вам большое за помощь. Да, обошлась без ajax, вывела форму ответа на комментарий модулем Modal forms - то же самое, по-сути. У меня еще один вопрос. Подскажите пожалуйста, как вывести обращение к автору комментарию. Например, оставил комментарий некий Вася и я решила ответить на его комментарий. Как сделать так, чтоб в начале моего комментария была строчка "ответил Васе" или обращение типа "Вася,..." Везде искала, не могу найти. Спасибо Вам огромное, что не даете погибнуть в битве с Друпалом.

Аватар пользователя Oleg

Oleg сб, 02/20/2016 - 10:03

Я смотрю Вы не ищете лёгких путей :)

Сейчас готового решения нет. Немног разгребу посмотрю что можно придумать.

Аватар пользователя SVET

SVET сб, 02/20/2016 - 23:06

Ищу, ищу!!! Но поскольку я - бешеная самоучка иду, что ожидаемо, самыми длинными и сложными путями...Утешаю себя мыслью, что у всех происходит именно так) Хорошо, что у нас есть Вы! Спасибо за терпение. Буду очень ждать!
С уважением, Светлана.

Аватар пользователя SVET

SVET вт, 03/01/2016 - 22:43

Олег, спасибо Вам большое за помощь. Это именно то, что нужно!!! Как здорово, что есть такие замечательные люди, как Вы!!!! СПАСИБО!!!!

Аватар пользователя Oleg

Oleg ср, 03/02/2016 - 21:39

Всегда пожалуйста. Помочь начинающему друпологу - святое.

Аватар пользователя User

User пт, 06/17/2016 - 20:05

Здравствуйте, вопрос немного не по теме, но найти подходящую я не смог. Очень интересует форма добавления и редактирования материала. Где находятся шаблоны, как убрать из настроек публикации варианты - "закрепить вверху" и "помещено на главную", а оставить только "опубликовать" с галкой выбора. Зашел в тупик - создал страницу создания материала панелью, вывел нужные поля, но без поля настройка публикации не публикуется вообще, а при его добавлении выводится полностью( со всеми нежелательными пунктами). Посоветуйте, пожалуйста, что-нибудь..Может есть такая тема уже или модуль какой.. Думаю, что можно это решить удалив ненужное из шаблона, но найти его не могу. Спасибо!

Аватар пользователя Oleg

Oleg сб, 06/18/2016 - 17:34

Достаточно ограничить права пользователя отключив управление материалами. 

Аватар пользователя Баженаа

Баженаа вс, 01/29/2017 - 23:09

Здравствуйте. Не могу добавить к форме комментария поле ИЗОБРАЖЕНИЕ и ФАЙЛ. Точнее поля эти вывожу, они появляются. Изображение загружаю, оно загружается и видно его рядом, а вот при сохранении комментария или при предпросмотре, вместо файла белый листочек, а ввместо изображения либо пусто, либо синий квадрат (как картинка при отсутствии изображения). Как лечить?

Аватар пользователя Oleg

Oleg пн, 01/30/2017 - 15:00

С полем файл так и должно быть. Белый листочек - иконка файла. Рядом должна быть ссылка описание или название файла.

С полем изображение нужо смотреть сайт. Так на вскидку не скажу в чём проблема.

Вам обязательно выводить картинку полем? Не проще добавить кнопку в редактор.

Аватар пользователя Бажена

Бажена ср, 02/01/2017 - 22:52

У меня мультиблог. Пользователи ведут блоги. им надо прикреплять изображения с компа/телефона. Друпал новый для меня)))
возможно модуль?
С изображением разобралась, не видно было при предпросмотре и ошибка 572 была. Убрала его и всё ок.

Аватар пользователя Oleg

Oleg чт, 02/02/2017 - 13:57

Если нужно просто прикрепить изображение то проще сделать отдельное поле куда будут закидываться картинки. При желании эти картинки можно будет вставлять в текст подробнее по ссылке https://webonlife.ru/sozdanie-sayta/prostoe-dobavlenie-kartinok

Есть ещё один вариант добавлять через кнопку в редакторе. Для этого нужен редактор CKEditor и файлменеджер IMCE https://webonlife.ru/sozdanie-sayta/ckeditor-v-drupal-kak-ustanovit-i-nastroit#insert-img

Второй способ трудно подружить с адаптивными изображениями, но можно установить лимит для загрузки файлов.

Аватар пользователя xaxel3000

xaxel3000 вт, 06/06/2017 - 00:47

Здравствуйте.
А как убрать поле "Домашняя страница"
Я почти ноль в коде. Прочитал кучу статей, но там не пишут, куда конкретно какой код вставлять (

Аватар пользователя Oleg

Oleg сб, 06/10/2017 - 10:55

Вот несколько вариантов как убрать поле домашнияя страница https://webonlife.ru/sozdanie-sayta/3-sposoba-ubrat-pole-sayt-iz-formy-kommentariev-drupal. Лучше использовать третий вариант.

Аватар пользователя Сергей

Сергей вт, 11/21/2017 - 19:39

Олег, здравствуйте.
Если не трудно, подскажите, пожалуйста, как настроить комментарии таким образом, чтобы пользователь мог добавлять простой текст, а админ сайта, отвечая, мог бы и ссылки вставлять (работающие), например на статьи, чтобы не повторяться?
С уважением.

Аватар пользователя Oleg

Oleg ср, 11/22/2017 - 16:12

Нужно настроить два формата текста. Один из форматов будет форматом по умолчанию, который доступен для всех пользователей. Для этого формата нужно задать самые суровые условия фильтрации. Есть старая статья для седьмого друпала https://webonlife.ru/sozdanie-sayta/nastraivaem-redaktor-tinymce-i-rezhim-formatirovaniya

Если у вас Drupal8 посмотрите в этой книжке https://drive.google.com/file/d/0B6G01siNWAwvV3V3WnRzZkFUNGM/view

Добавить комментарий