Модуль "Форма обратной связи": различия между версиями

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску
 
Строка 6: Строка 6:
 
==Предусмотренные поля==
 
==Предусмотренные поля==
  
Если в модели формы обратной связи присутствует элемент с именем theme и типом select_box, то тема письма будет формироваться с учетом выбранной темы.
+
В качестве первичного ключа используйте поле с именем '''contactus_id'''
  
Для фиксации даты добавления заявки, когда заявки сохраняются в своей таблице в БД, добавьте в модель поле с именем created_at и типом dtdatetime с доступом только для администраторов.
+
Если в модели формы обратной связи присутствует элемент с именем '''theme''' и типом ''select_box'', то тема письма будет формироваться с учетом выбранной темы.
 +
 
 +
Для фиксации даты добавления заявки, когда заявки сохраняются в своей таблице в БД, добавьте в модель поле с именем '''created_at''' и типом ''dtdatetime'' с доступом только для администраторов.
  
 
==Добавление формы обратной связи на страницу==
 
==Добавление формы обратной связи на страницу==

Текущая версия на 01:17, 1 ноября 2017

Назначение

Обработка оставляемых пользователями сообщений обратной связи. Сообщения могут приниматься "на лету" - без записи в БД, а только с отправкой на почту, и с сохранением в БД. Для сохранения заявок в БД необходимо создать таблицу по модели contactus и добавить первичный ключ с именем contactus_id в эту модель.

Предусмотренные поля

В качестве первичного ключа используйте поле с именем contactus_id

Если в модели формы обратной связи присутствует элемент с именем theme и типом select_box, то тема письма будет формироваться с учетом выбранной темы.

Для фиксации даты добавления заявки, когда заявки сохраняются в своей таблице в БД, добавьте в модель поле с именем created_at и типом dtdatetime с доступом только для администраторов.

Добавление формы обратной связи на страницу

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

require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/contactus.php');
$contactus_form = new contactus_Form();
$this->template->assert('contactus_form', $contactus_form->get_order_form(array('form_class'=>'', 'onsuccess'=>'close_modal')));

После чего, используя переменную {$contactus_form} разместить форму в шаблоне.

Формы, добавленные в шаблон таким образом, будут работать посредством ajax-запроса.

Функция get_order_form принимает массив параметров следующего вида:

form_class - классы формы, если нужно переопределить стандартные

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

form_id - идентификатор формы. Если не задан, то будет использован сгенерированный случайный.