Обратная связь

Модуль позволяет пользователям оставлять сообщения на сайте и отвечать отправителям в административной части модуля. Модуль относится к части CMS «Интерактив» и может быть установлен опционально.

Модуль «Обратная связь» можно присоединить к различным страницам сайта. Если модуль прикреплен к нескольким страницам, в административной части модуля выводится фильтр «Раздел сайта», позволяющий отобразить сообщения и настройку модуля для одной страницы.

Сообщения

Список сообщений

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

Редактирование сообщения

Модуль имеет следующие характеристики.

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

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

Конструктор формы

Список полей

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

Конструктор – это дополнительные поля формы обратной связи. Можно добавлять поля общие (для всех разделов) или присваивать поле отдельной форме на отдельной странице.

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

Дополнительные поля имеют следующие параметры.

Если выбран тип «выпадающий список» или «список с выбором нескольких значений», то появятся дополнительные поля со значениями.

Настройки

Настройки

Шаблонные теги

Для работы с модулем «Обратная связь» служат следующие шаблонные теги:

show_form – выводит форму добавления сообщения. Для правильной работы тега должна существовать страница, к которой прикреплен модуль Обратная связь.

Атрибуты:

site_id – страница, к которой прикреплен модуль, по умолчанию выбирается одна страница;

defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;

defer_title – текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега;

template – шаблон тега (файл modules/feedback/views/feedback.view.form_template.php; по умолчанию шаблон modules/feedback/views/feedback.view.form.php).

Пример:

<insert name="show_form" module="feedback" site_id="12" template="modal">

выведет форму добавления сообщения с использованием шаблона feedback.view.form_modal.php со страницы сайта (ID 12), к которой прикреплён модуль "Обратная связь". Таким способом можно размещать формы в любом месте на сайте без привязки к конкретной странице, в т.ч. во всплывающих/модальных окнах.

В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].

База данных

{feedback} – Сообщения из обратной связи

{feedback_param} – Поля конструктора формы обратной связи

{feedback_param_element} – Значения полей конструктора формы обратной связи, заполненные в сообщении

{feedback_param_select} – Варианты значений полей конструктора с типом список

Файлы

  1. modules/feedback/admin/feedback.admin.php – редактирование сообщений из формы обратной связи;

  2. modules/feedback/admin/feedback.admin.config.php – настройки модуля;

  3. modules/feedback/admin/feedback.admin.count.php – количество неотвеченных сообщений из формы обратной связи для меню административной панели;

  4. modules/feedback/admin/feedback.admin.dashboard.php – сообщения обратной связи для событий;

  5. modules/feedback/admin/feedback.admin.param.php – конструктор формы обратной связи;

  6. modules/feedback/feedback.php – контроллер;

  7. modules/feedback/feedback.action.php – обработка POST-запроса;

  8. modules/feedback/feedback.install.php – установка модуля;

  9. modules/feedback/feedback.model.php – модель;

  10. modules/feedback/views/feedback.view.form.php – шаблон формы добавления сообщения в обратной связи;

  11. modules/feedback/views/feedback.view.images.php – шаблон вывода прикрепленных к сообщению изображений.

Ваши комментарии и дополнения
06 ноября 2015 г.
Как через админку выбрать шаблон формы обратной связи для определённой страницы? По умолчанию используется шаблон modules/feedback/views/feedback.view.form.php для всех страниц, к которым прикрепили модуль обратной связи. А надо, чтобы для одной страницы модуль отображался по одному шаблону, для другой страницы по другому шаблону, как это реализовать?
08 ноября 2015 г.
Шаблон формы можно задать только для шаблонного тега в этом модуле. В административной части нет выбора шаблона.
23 января 2016 г. , редакция: 23 января 2016 г.

Есть какой то стандартный механизм добавления НЕСКОЛЬКИХ форм на одну и туже страницу
Или это дело можно реализовать только через model или action модуля?
При добавлении нескольких форм выводятся все поля для данной страницы во всех формах.
По идее вы должны были добавить атрибут как например template или site_id в котором можно было указывать нужные поля для разных форм
23 января 2016 г.
Так есть же атрибут site_id. Задаете его в шаблонном теге и выводите любую из форм. Хоть несколько форм на одной странице можно вывести, используяю нестолько тегов с разными site_id.
23 января 2016 г. , редакция: 23 января 2016 г.
Вы меня не поняли несколько форм я могу вывести - я не могу вывести те поля которые мне надо.
Мне надо несколько форм на главной вывести у них у всех site_id = 1 и поля разные.
Когда я их вывожу выводятся все поля в одной форме. Как сделать так чтобы выводились только те поля которые нужно?
Например только имя, фамилия, email
Я так понял этого функционала просто нету
23 января 2016 г.
Я так понял Diafan позволяет создавать несколько форм на одной странице только если у них site_id разный.
Иначе никак нельзя.
На мой взгляд это не логично создавать дополнительные страницы чтобы добавить форму.
09 сентября 2016 г.
Как добавить текстовое поле, которое на сайте должно быть скрыто, а в админке показано значение скрытого поля?
10 сентября 2016 г.
Антон, из коробки такой возможности не предусмотрено. Вы можете сделать опцию "Выводить в форме" (например show_in_form) для полей (http://www.diafan.ru/dokument/full-manual/examples/new-field/). И там где запрашиваются поля добавить:

Код
$this->result["rows"] = $this->get_params(array("module" => "feedback", "where" => "site_id=".$site_id." AND show_in_form='1'"));



Ну или просто в шаблоне добавьте:

Код
if($row["id"] == 15) continue;


Это в цикле по характеристикам. Где 15 - это ид поля, которое выводить не нужно.
15 ноября 2018 г.
Подскажите пожалуйста как реализовать в уведомлениях администратора не только url сайта, но и страницы откуда отправлено? Очень не хватает....
15 ноября 2018 г.
Это поле очень давно передается в обратную связь. Полный адрес страницы, откуда отправили сообщение.
Скорее всего, у Вас старая версия. Обновитесь
04 апреля 2019 г.
Виталий, а название страницы, откуда отправлен запрос можно как-то прописать в письме администратору?
28 января 2020 г.
Как можно расширить количество параметров для ответных писем? Я имею ввиду, таких как %title, %url ...Если мне необходимо в ответном письме выводить все данные которые заполнили в форме обратной связи.
28 января 2020 г.
Цитата
Как можно расширить количество параметров для ответных писем? Я имею ввиду, таких как %title, %url

/modules/feedback/feedback.action.php
send_mail()
Цитата
Если мне необходимо в ответном письме выводить все данные которые заполнили в форме обратной связи.

Они и так приходят, это маска %message, там все параметры формы из конструктора полей
28 января 2020 г. , редакция: 29 января 2020 г.
А как отдельно вывести только, например, имя ? Помогите, не получается!
30 января 2020 г. , редакция: 30 января 2020 г.
Цитата
А как отдельно вывести только, например, имя ? Помогите, не получается!

Вы если бы хоть чуть-чуть знали РНР и умели программировать, вот этой информации хватило бы за глаза:
Цитата
/modules/feedback/feedback.action.php
send_mail()

Код
$message = str_replace(
array('%title', '%url', '%message'),
array(
TITLE,
BASE_URL,
$this->message_admin_param
)

Прекрасно же видно, что это единственное место при отправке письма, в котором идет замена масок типа %message на нужные значения, в случае с сообщением это $this->message_admin_param, массив значений конструктора полей, глобальная переменная, заполняется в /includes/action.php. И как таковое "Имя" в системе не существует, в форме же конструктор полей, который можно изменить, добавить/удалить.

Поэтому найти в массиве "Имя" можно чисто по названию, или по id поля "Имя" (id можно узнать в админке, когда поля создаете, видно). И делать это можно или в $this->message_admin_param или смотреть _POST, тоже достаточно. Сделайте print_r(); exit; и при отправке сообщения в консоли увидите всё, что передается в action.

Далее останется только для этой переменной и добавить маску в
Код
$message = str_replace(
array('%title', '%url', '%message', '%name'),
array(
TITLE,
BASE_URL,
$this->message_admin_param,
$элемент_массива_с_именем,
)

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