Drupal. Форма обратной связи. Типы комментариев


Содержание материала:

Drupal → Прячем форму комментирования и показываем её только по клику на ссылке «Отправить комментарий»

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

Первым шагом прячем форму комментариев для пользователей, у которых включён javascript. Для этого в css файл добавляем:

Вместо .blog указываем класс, которым помечены ноды. Например, если комментарии разрешены для материала типа Story (Заметка), то класс у ноды будет story и селектор соответственно:

Это необходимо, чтобы форма пряталась только на странице просмотра ноды, и не пряталась на странице ответа на чей нибудь коммент.

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

Если нет, то открываем файл ваша-тема.info и добавляем туда строчку:

Далее, в папке темы создаём файл scripts.js и добавляем туда код, приведённый выше. Очищаем кэш.

Результат можно посмотреть в форме ниже.

Написанное актуально для Drupal 6.x Похожие записи

Форма обратной связи на Drupal Webform с безопасным хранением прикрепленных файлов

Всем, аллоха! Сегодня пост будет про то, как в Drupal создавать формы обратной связи через Webform с возможностью прикрепления файлов. Казалось бы, «Ха, да очень просто!» , но я потратил на решение этой задачи неделю. Хотите знать почему? Тогда прошу к прочтению.

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

Согласитесь, что при обращении за услугами в любую компанию, вам, как правило, необходимо приложить к письму какие-либо документы. А эти документы в свою очередь могут содержать корпоративную или личную информацию, доступ к которой лучше оставлять ограниченным. Собственно после таких рассуждений я и составил список требований к «правильной» форме обратной связи:

  • Возможность загрузки произвольного количества файлов;
  • Управление списком доступных расширений файлов для загрузки;
  • Разграничение прав и управление доступом к загруженным файлам;
  • Отправка письма с прикрепленными файлами (а не ссылкой на них) на указанную почту при успешном заполнении формы.

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

Элемент Webform для загрузки файлов

Да, именно для этого проекта я изначально и написал модуль Webform Multiple File потому, что так и не смог найти никакого другого мало-мальски приличного решения. Разумеется, первым, что мне попалось под руку, был уже готовый модуль Webform Multiple File Upload с Drupal.org. Но даже, если бегло пробежаться глазами по коду, становится понятно, что он не подходит. Модуль работает на JS-библиотеке, которая не позволяет в нужной мере оперировать с файлами: ни валидации, ни возможности использовать AJAX на форме.

Идеальным визуальным решением для мультизагрузки файлов к форме мне тогда показался принцип работы File Field Widget в нодах: после каждого загруженного файла отображается форма для загрузки следующего. Собственно, так и получился модуль Webform Multiple File. Более подробно о модуле сможете прочитать по ссылке.

Private file system для Webform

Надеюсь, для вас не секрет, что Drupal из коробки уже умеет разграничивать доступ к файлам. При работе с Private file system поднимается ядро Drupal и проверяются права (permissions) текущего пользователя перед тем, как отдать ему файл. Чтобы настроить эту систему:

  • Перейдите в admin / config / media / file — system и укажите путь к директории для хранения закрытых файлов. Например, у меня это будет sites / default / files / private . После сохранения настроек будет инициализирована директория «private» , закрытая от внешнего мира через .htaccess директивы.
  • К вашей Webform для обратной связи добавьте элемент ‘Multiple file’ и в настройках Upload destination выберите Private files . Также можете выбрать поддиректорию для хранения файлов, загруженных именно через данный элемент вебформы.

С данными настройками доступом к загруженным файлам будут обладать только те пользователи, роль которых позволяет просматривать результаты Webform. Другими словами, это права “Access all webform results” или “Access own webform results” на странице admin / people / permissions .

Если у вас появится желание более широко разграничить права для ролей, то хук hook_file_download ( ) вам в помощь. Ну и, возможно, потребуется поставить пару Breakpoint’ов для отладки в функции file_download ( ) – статья про отладку PHP приложений вам в помощь.

Отправка писем с прикрепленными файлами

По умолчанию Webform отсылает письмо, в котором предоставляются только ссылки на файлы. Я же решил, что это будет совершенно не практично, ведь письмо вероятнее всего будут пересылать из отдела в отдел компании. И что всей компании предоставлять административный доступ к сайту, чтобы выкачать несколько файлов? Разумеется, что нет. Поэтому загруженные файлы должны прикрепляться к письму.

Для решения этой задачи нам потребуется:

  • Установить контриб модуль Mail System;
  • Установить контриб модуль Mime Mail;
  • Имплементировать hook_mail_alter ( ) в своем модуле.

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

Теперь необходимо перехватить письмо до того, как его Drupal отправит, и прикрепить к нему загруженные файлы. Код не претендует на изящность – это было быстрое и рабочее решение на момент написания проекта. Итак, в своем модуле имплементируем следующий хук:

Единственное, что требуется изменить в приведенном коде под конкретный проект – это константу MY_MODULE_WEBFORM_FILE_COMPONENT_NAME , храняющую машинное имя компонента Webform, через который загружаются файлы. Взять эти данные можно в настройках компонента – Field Key .

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

Еще один важный момент : представленное решение является стабильным, проверенным и рабочим на случай, если у вас одна контактная форма (другими словами, одна нода типа Webform), которая содержит только один элемент Multiple File для загрузки файлов. Я просто хочу предупредить что, если у вас немного отличается структура проекта от моего, то существует вероятность появления ошибок. Паниковать и кричать «Ниработае. 1» не стоит – я уверен, проблема решится изменением нескольких строчек кода.

В случае появления вопросов или неразрешимых проблем при попытке воспроизвести данное решение на вашем проекте – обращайтесь. Ну и обсуждениям в комментариях я тоже буду рад!

Drupal: переименовываем комментарии в отзывы

Делаю сайт на Drupal 7. В процессе создания сайта возникла такая задача: нужно, чтобы пользователи могли оставлять отзывы о товарах, представленных на сайте.
Комментарии выглядят наиболее подходящим кандидатом для использования в качестве отзывов: они отличаются от отзывов только названием, все остальное поведение совпадает практически один в один. А если где и не совпадает, то это можно исправить изменением настроек.

Итак, будем переименовывать комментарии в отзывы. Самый простой путь — заменить в переводах разные формы слова «коментарий» на аналогичные формы слова «отзыв». Но к сожалению на сайте кроме товаров есть так же другие типы материалов, например статьи, к котором пользователи уже могут оставлять именно комментарии, а не отзывы. То есть для одного типа материала эта сущность должна называться «Отзывы», а для остальных «Комментарии». Поэтому придется прибегнуть к более сложному способу.
Я буду показывать превращение комментариев в отзывы на примере Drupal 7, но этот способ должен подойти и для шестерки.
Для того, чтобы изменять комментарии описываемым здесь способом, нужно модифицировать тему оформления. То есть тема вами уже должна быть выбрана и установлена. Если вы используете стороннюю тему (а не собственного изготовления), то изменения лучше всего вносить не в саму тему, а создать ее подтему. В этом случае, если авторы темы выпустят обновление вам проще будет объединить изменения от авторов с вашими.
Дальше по тексту предполагается, что машинное имя типа материала товара — «product». Если у вас этот материал называется по другому, то в примерах кода замените название «product» на ваше.

Шаг 1: Обертка вокруг комментариев.

Открываем страницу с описанием товара и смотрим:

Видим надпись «Комментарии» крупным шрифтом обозначающую собственно начало радела с комментариями на странице. Заголовок комментариев на странице формируется в файле темы comment-wrapper.tpl.php. Чтобы заменить его, в нашей теме создаем папку templates, и из папки templates родительской темы копируем файл comment-wrapper.tpl.php в нашу. (Если у вашей темы нет родительской темы или уже есть файл comment-wrapper.tpl.php, тогда его копировать не нужно.) Открываем файл в текстовом редакторе. Находим в нем строки содержащие код вида или в общем всевозможные строковые литералы со словом comment внутри функции t и print. Заменяем найденные куски на код вида:

Топ-пост этого месяца:  Как установить плагин WordPress из административной панели сайта

Очищаем кэш, перезагружаем страницу и видим, что над отзывами у нас теперь висит заголовок «Отзывы»:

Шаг 2: Ссылки в материале

Ссылки на действия с отзывами внутри страницы («Добавить комментарий», «N комментариев», «отправлять комментарии») по прежнему ссылаются на комментарии. Ссылки формируются в файле темы node.tpl.php. Этот файл применяется по умолчанию ко всем типам материалов. Для отдельного типа материала, можно сделать свой экземпляр файла node.tpl.php: для этого его нужно скопировать и переименовать таким образом: node—contentname.tpl.php, где вместо contentname стоит машинное имя материала. Для этого типа материала теперь будет применяться этот файл.
Копируем node.tpl.php в свою подтему, переименовываем его в node—product.tpl.php и открываем в текстовом редакторе. Где нибудь ближе к началу вставляем такой кусок кода:

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

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

Шаг 3: Ссылки в комментариях

В конце отзывов, как и в конце материала, так же есть ссылки на изменение/добавление/удаление. Они по прежнему содержат слово «комментарии». С ними можно бороться примерно так же как и в материале. За оформление отдельных комментариев отвечает файл comment.tpl.php. Скопируйте этот файл из родительской темы в свою тему и откройте в текстовом редакторе. К сожалению нельзя сделать версию этого файла специально для заданного типа материала. Поэтому будем вставлять проверки типа материала непосредственно в коде.
Где-то в начале файла вставляем определение функции ReplaceCommentToReview:

Затем ищем код вида:и заменяем его кодом:

Очищаем кэш, перезагружаем страницу, смотрим результат:

Шаг 4: Ответы на отзывы

Если войти на сайт под своей учетной записью и открыть страницу товара, то можно обнаружить интересный факт:

На отзыв можно написать ответ! И этот ответ тоже будет отзывом, что выглядит не логично и странно. Исправить это можно удалив ссылку «Ответить». Для этого снова открываем файл comment.tpl.php и в том месте где мы меняли код на предыдущем шаге:

Перезагружаем страницу (кэш можно не очищать), смотрим:

Ссылка «Ответить» исчезла.

Шаг 5: Заголовок формы добавления отзыва

Находясь под своей учетной записью переходим по ссылке «Добавить отзыв» (на этом сайте форма добавления отзыва находится на отдельной странице, а не в конце отзывов). И что мы видим:

В заголовке формы присутствует слово «комментарий». Более того, название формы так же есть в цепочке ссылок наверху страницы и в заголовке окна браузера. Изменение вида форм осуществляется с помощью так называемых хуков. Хук — это функция с заданным именем и набором параметров в которой проводиться дополнительная обработка данных. На разных этапах формирования страницы Drupal проверяет, определена ли для этого этапа функция-хук и если определена, то вызывает ее. Определяя хуки, можно влиять почти произвольным образом на почти любой аспект формирования страницы.
За дополнительную обработку форм в темах оформления отвечают функции-хуки вида:
THEMENAME_form_FORMID_alter(&$form, &$form_state)
где THEMENAME — имя темы, FORMID — машинное имя формы. Имя формы можно определить следующим образом: откройте код исходный код страницы и найдите там теги input типа «hidden» с именем «form_id». Значение поля value и будет имя формы. В нашем случае удалось найти такой тег:(На самом деле есть еще такой тег, подходящий под наши критерии: Но это очевидно не то что нам нужно.)
В итоге получаем такое имя функции-хука:Хуки для темы задаются в файле template.php, причем этот файл должен находиться в корневой папке темы, а не в подпапке templates. Кроме того, этот файл не нужно копировать из родительской темы: нужно создавать свой. Функции определенные в этом файле будут добавлены в функциям определенным в родительской теме. Еще один нюанс этого файла: в нем должен быть открывающий тег Теги: drupal, drupal 7, темизация

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

Блог Vaden Pro

Настройка комментариев

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

Для начала надо разрешить посетителям ресурса оставлять комментарии. Для этого надо перейти в меню под названием People – permission (или пользователи — права доступа в русифицированной версии). В открывшейся форме в первом столбике можно отметить опции, которые будут доступны анонимам (посетителям, которые не зарегистрировались на сайте). Например, можно открыть просмотр уже оставленных комментариев для всех посетителей. Также можно позволить пользователю комментировать материал и без предварительной регистрации.


Можно попросить посетителя перед оставлением коммента зарегистрироваться на сайте. Но, как показывает практика, только единицы из них заполнят форму регистрации, чтобы оставить свое мнение на сайте. А вот от спама такой прием точно не защитит. Тут можно пойти другим путем – отключить опцию публикации комментария без предварительной проверки (он появиться на сайте только после одобрения).

После этого стоит настроить и включить комментарии для разных типов размещенного материала. Например, чтобы настроить комментарии для определенного типа материала, например, под названием Article надо перейти по Structure — Content types – Article и открыть специальную вкладку для последующей настройки отзывов.

Чтобы включить комментарии в списке, который появиться на странице, надо выбрать «Открыть» (Open). Теперь надо отметить то количество отзывов, которые будут отображаться на странице сайта.

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

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

Третий пункт нам сейчас понадобится, поскольку далее мы рассмотрим как подписать пользователя на новые комментарии, оставляемые к статьям на сайте. Уведомления о них будут приходить пользователю на указанный им при заполнении формы мейл.

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

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

Теперь взглянем на нашу форму. Как-то многовато всего лишнего, не так ли?

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

В рамках данного урока первые два способа мы затрагивать не будем, а вот третий сейчас рассмотрим подробнее.

Для этих целей надо будет установить модуль под названием

. Теперь снова надо будет перейти к редактированию права доступа (people – Permission). После установки Better Format формы подправляются автоматически, но лучше лишний раз посмотрим, как все должно выглядеть.

После подключения модуля наша форма приобрела следующий вид:

Рассмотрим чуть лучше настройки модуля.

Если Вы хотите, к примеру, разрешить зарегистрированным пользователям выбирать режим форматирования текста в комментариях, то поставьте галочку авторизированным пользователям в строке Show format selection for comments.

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

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

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

Для разрешения пользователю подписаться на новые комментарии надо установить модуль под названием

, перейти People – Permissions и разрешить подписку. Не забываем, что ранее мы настроили форму комментариев так, чтобы пользователям приходилось оставлять свой мейл при ответе на комментарий. Это было сделано для того, чтобы этот модуль работал.

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

После этого настраиваются стандартные режимы. Тут можно подписать пользователя на получение автоматических сообщений по умолчанию, при условии, что он сам не снимит соответствующий флажок в форме (при оставлении им комментария). И последняя из опций – это подписка пользователей на комментарии, оставленные автором материала.

А теперь надо составить шаблон текста электронного сообщения, которое будет получать подписчик. В этих целях можно воспользоваться токенами (выражения в [] скобках). Во время редактирования шаблона не стоит удалять ссылку, по которой можно отписаться от рассылки, ведь у каждого пользователя должна быть свобода выбора получать уведомления от сайта или нет.

Для того, чтобы все корректно работало, нужно указать сайту мейл зарегистрированный на домене сайта (название_ящика@ваш_домен). См. пример ниже.

Для получения такого адреса подробно ознакамливаемся с панелью управления Вашего хостера и находим там что-то на подобие:

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

Бизнес-история

Вход на сайт

Последнее видео

Страницы

Авторская энциклопедия

Вы здесь

Comment (модуль Drupal 6): настройка комментариев

Общие сведения

Входит в пакет модулей: Ядро Drupal

Топ-пост этого месяца:  OpenCart создание страницы с использованием шаблона MVC основы процесса и настройка контроллера

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

Краткое описание (en): Allows users to comment on and discuss published content.

Сведения об установке

Ссылка для скачивания дистрибутива: http://drupal.org/drupal-6.20

Инструкция по установке: Установка модулей Drupal 6

Возможность обратной связи — это одно из тех жизненных благ, которое мы сполна можем вкусить в эпоху Интернета. И одна из форм этой самой обратной связи применительно к вашему сайту — комментарии, которые посетители могут оставить после ваших материалов. Например, задела читателя ваша статья за живое и он думает: «Сейчас я этому гаду напишу все, что я о нем думаю!» И, как говорится, «на ловца и зверь бежит»: форма комментария тут как тут.

В пределах CMS Drupal эта возможность реализуется модулем Comment — еще одним дополнительным модулем, который обычно включается во время установки системы.

1. Настройка комментариев

Прежде всего, при настройке комментариев следует определить: кому позволено их оставлять, а кому нет? По умолчанию в Drupal’е все сделано так, что возможность оставлять комменты — это главное отличие между анонимными и зарегистрированными пользователями. Можно сказать, что этим разделением мы убиваем сразу двух зайцев. Во-первых, это значительно усложняет задачу спамерам. Во-вторых — это поощряет посетителей регистрироваться на сайте. Вам ведь нужна база данных посетителей, не так ли?

Посмотреть права пользователей касаемо модуля Comment можно, зайдя в админское меню и перемистившись в нем по адресу: Управление → Управление пользователями → Разрешения (Administer → User management → Permission). Промотав до раздела «модуль comment» (comment module), можете установить галочки так, как вашей душеньке угодно:

Основная строка, на которую здесь следует обратить внимание — «размещать комментарии без проверки» (post comments without approval). Если она поставлена, то пользователь увидит комментарий сразу же после написания. Если нет — то сначала коммент поступит на премодерацию, и модератор (скорее всего, это будете вы) решит: стоит эту писанину выводить на свет Божий свет или нет.

Что же касается остальных настроек (помимо доступов к модулю), то. с глубоким сожалением, грустью и прискорбием вынуждены сообщить, что общего инструмента настройки комментариев в Drupal нет. Задание общих параметров возможно только на уровне типов материалов. Куда мы, собственно и перейдем по ссылке: Управление → Управление контентом → Типы материалов (Administer → Content management → Content types) → [Название типа материалов]. Для примера выбран тип «Заметка» (Story), в нижней части страницы редактирования которого (как и у других типов) с момента установки модуля Comment появился приличный раздел «Установки комментариев» (Comment settings). Развернем его (нажав на название) и поразимся размерам:

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

2. Создание комментариев

Теперь посмотрим, как пользователь может оставить комментарий к вашему материалу. Для этого зайдем на какой-нибудь материал и нажмем на ссылку «Добавить комментарий» (Add new comment) внизу страницы:

На этой ссылке — появляется та же страница ноды, но с полем для наименования и текста нового комментария. Плюс еще можно выбрать формат ввода — один из доступных. Заполним эти поля:

Нажимаете на кнопку «Предпросмотр» (Preview) или «Сохранить» (Save) (в зависимости от вашего желания и настроек темы оформления) — и можете любоваться материалом, к которому надежно прикрепился новоиспеченный коммент:

Впрочем, не так уж и надежно он прикрепился: и модератор, и автор комментария могут его изменить и удалить. Причем, не выходя с этой страницы: необходимые ссылки-кнопочки здесь имеются.

3. Модерирование комментариев

Те лица, у кого есть разрешение «управлять комментариями» (вы, конечно же, к таким относитесь), имеют право распоряжаться комментариями, которые оставили остальные. Для выполнения этих замечательных обязанностей следует перейти по меню: Управление → Управление контентом → Комментарии (Administer → Content management → Comments):

Автоматически вы попадаете на вкладку «Опубликованные комментарии» (Published comments), где находится соответствующая таблица. В нашем примере — один единственный, только что созданный коммент. Здесь можно над ним «поиздеваться» двояким образом:
1) нажав на ссылку «изменить» (edit) в правой колонке, вы попадете на уже знакомую страницу изменения комментариев;
2) отметив галочкой слева, можете либо снять комментарий с публикации, либо вообще его удалить, воспользовавшись списком «Обновить параметры» (Update options) (на рисунке для наглядности развернут).

Чтобы посмотреть, что будет дальше, в нашем примере мы сняли комментарии с публикации, а потом перешли на вкладку «Очередь на подтверждение» (Approval queue):

Здесь — аналогичная таблица, но в ней отражены комменты, которые сейчас крайне нуждаются в вашем волевом решении. Автоматически сюда попадают комментарии, которые созданы пользователями, которые не имеют право их публиковать, а только отправлять на премодерацию. А также — то, что вы или другой модератор отправили сюда «вручную» вышеуказанным способом. Возможных действий с комментариями здесь тоже три: опубликование, удаление и изменение.

Drupal. Форма обратной связи. Типы комментариев

Если вас не устраивает внешний вид вывода комментариев в шаблоне вашей темы вы можете настроить и оформить их на свой вкус, для этого скопируйте базовые шаблоны в папку вашей темы(/sites/all/themes/ваша тема).

Базовыми шаблонами для комментариев в Drupal являются файлы comment.tpl.php и comment-wrapper.tpl.php.

Оригиналы файлов базовых шаблонов comment.tpl.php и comment-wrapper.tpl.php по умолчанию находятся в /modules/comment/comment.tpl.php и соответсвенно /modules/comment/comment-wraper.tpl.php.


Фаил comment.tpl.php отвечает за вывод отдельного комментария, а фаил comment-wraper.tpl.php отвечает за вывод списка комментариев.

Если вы будете редактировать выше перечисленные файлы то ваши изменения будут применятся ко всем комментариям на всем сайте. А что делать если нужно сделать разные комментарии для разных типов материалов ?

В таком случае вам нужно будет создать шаблон комментария для конкретного типа материала, который будет иметь следующий вид: comment– .tpl.php

comment– .tpl.php позволит изменить шаблон для всех комментариев принадлежащих к материалам указанного типа.

Например вы решили сделать разный вид вывода для комментариев типа blog и типа forum, следовательно нужно создать два файла в папке вашей темы: comment–blog.tpl.php и comment–forum.tpl.php

Далее давайте рассмотрим переменные которые могут пригодиться для редактирования базовых шаблонов:

Стандартные переменные шаблона comment.tpl.php:

  • $author – автор комментария.
  • $content – массив полей комментария.
  • $created – дата и время создания комментария.
  • $changed – дата и время публикации комментария.
  • $ >Следующие переменные шаблона comment-wrapper.tpl.php предназначены дляконтекстной информации :
  • $node- материал, к которому относятся комментарии.

Константы шаблона comment-wrapper.tpl.php:

  • $display_mode – режим отображения комментариев:
    • COMMENT_MODE_FLAT – отображать списком.
    • COMMENT_MODE_THREADED – отображать деревом.

Прочие переменные шаблона comment-wrapper.tpl.php:

  • $classes_array, массив – CSS классов. Преобразуются в строку сохраняясь в $classes.

Ну и небольшой бонус напоследок.

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

Как создать форму обратной связи в Drupal 7

Форма обратной связи считается одним из самых удобных способов общения между посетителями сайта и его владельцем. Дело в том, что именно такой формат “диалога” действительно удобен: пользователю достаточно заполнить несколько полей в форме и нажать “Отправить”. В то же время при отсутствии формы обратной связи посетителю сайта пришлось бы искать контактный email, открывать почтовый клиент, писать письмо и пр.

Зачастую форма обратной связи работает так:

пользователь отправляет вопрос/предложение, заполнив те или иные поля (имя, email, текст сообщения);

сообщение поступает на почтовый ящик администратора/владельца сайта;

пользователь получает ответ на свое сообщение.

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

Форма обратной связи на Drupal-сайте

Что касается установки модуля формы обратной связи на Drupal-сайте, то здесь все достаточно просто. Главное помните, что устанавливая новое расширение, нужно удостовериться в том, что оно не приведет к медленной загрузке сайта. В противном случае стоит удалить лишние модули или же задуматься о смене провайдера. Уточним, что для сайта, на который мы установим модуль, выбран хостинг https://s-host.com.ua/, гарантирующий достаточный объем ресурсов.

Для создания формы обратной связи мы будем использовать модуль Webform. Скачайте его на официальном сайте движка, а затем установите (“Модули”/“Установить новый модуль”) и активируйте его.

Создание формы обратной связи

Теперь, когда модуль установлен и включен, перейдите в раздел “Содержимое”/“Добавить материал”/“Webform”:

заполните поле Title;

отметьте галочкой “Создать ссылку в меню”, если вы хотите, чтобы в меню появился данный пункт.

Обратите внимание на то, что Title автоматически дублируется в поле “Название ссылки меню”. При желании вы также можете переименовать его:

Сохраните изменения, чтобы перейти к добавлению полей. В первую очередь, впишите название поля в строку New component name, затем выберите тип материала и нажмите “Добавить”. Например, мы добавим поле email:

На странице редактирования компонента во вкладке “Email-адреса” добавим почтовый ящик, на который будут приходить сообщения пользователей:

Затем добавим поля для введения сообщения и контактного почтового ящика:

Обязательно сохраните изменения. прежде чем перейти на свой сайт для проверки формы обратной связи:

Теперь на ваш почтовый ящик будут поступать сообщения пользователей:

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

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

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

Топ-пост этого месяца:  NS сервера CloudFlare – отличный выбор для сайта Wordpress

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

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

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

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

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

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

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

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

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

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

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


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

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

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

  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, попробуем найти альтернативу друпаловской форме комментариев.

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

Member for

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

Drupal 7. Как настроить контактную форму и редактировать ее детали

Сентябрь 28, 2012

Этот туториал покажет, как добавить контактную форму в шаблон Drupal, изменить email адрес, отредактировать поля формы.

Добавление контактной формы

  1. В админ-панели откройте Modules и включите Contact7.7 (включает как персональную форму, так и форму сайта). Отметьте его и нажмите Save Configuration, чтобы сохранить изменения.

Убедитесь, что в Modules ->Panels все эти модули включены:

Откройте Structure -> Pages

  • Нажмите Import Page (импортировать страницу)
  • Page name должен быть Contacts
  • Path должен быть contacts
  • Allow overwrite of an existing page (позволять перезаписывать существующую страницу) должен быть выбран.
  • В Paste page code here добавьте следующее:
  • Нажмите на кнопку Import.

    Нажмите Save, чтобы сохранить изменения.

  • На той же странице, где говориться Menu в Summary, нажмите edit, чтобы добавить новое меню для контакт-формы.
  • Обновите сайт, чтобы увидеть форму, которую Вы только что создали.

  • Вы всегда можете вернуться на страницу настроек: Structure -> Panels -> Contacs -> edit.
  • Изменение email адреса

    Чтобы активировать контакт-форму (изменить email адрес), откройте Structure -> Contacts Form menu -> edit. Нажмите Save, чтобы сохранить изменения.

    Изменение полей контактной формы

    Чтобы изменить поля формы:

    Your name * (Ваше имя)

    Your e-mail address * (Ваш email адрес)

    Subject * (Тема)

    Message * (Сообщение)

    Send yourself a copy. (послать копия себе)

    Send message (отослать сообщение)

    Вам нужно отредактировать соответствующие поля в contact.pages.inc файле из папки \modules\contact:

    ‘#title’ => t(‘Your name’),

    ‘#title’ => t(‘Your e-mail address’),

    ‘#title’ => t(‘Subject’),

    ‘#title’ => t(‘Message’),

    ‘#title’ => t(‘Send yourself a copy.’),

    ‘#value’ => t(‘Send message’)

    Название “Contact” можно изменить в Structure -> Pages -> Contacts -> (левое меню) Settings -> Basic -> Administrative title .

    Пожалуйста, ознакомьтесь с детальным, обучающим видео ниже:

    Drupal 7 — раскрывающаяся форма комментирования

    В чем проблема?

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

    Сразу отмечу, что подобный функционал реализует модуль «AJAX Comments». Но для Друпал 7 он мягко говоря «глючный». Один клик — один показ, второй клик — ниже с какого-то перепугу снова появляется вторая(!) form. Третий — третья, и так до бесконечности.

    Предлагаемое мною решение

    Создайте в папке вашей темы JavaScript файл. Назовите его, например, hidecomments.js. Заполните его кодом, представленным ниже:

    Открываете файл с информацией о текущей теме (*.info), вписываете всего лишь 1 строчку:

    Править CSS не требуется. Проверял на стандартных шаблонах Garland и Bartik. Конечно многое зависит также от того какой «скин» используете конкретно вы. Будут вопросы, — пишите. Постараюсь ответить.

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