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

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску

Назначение

Обработка оставляемых пользователями сообщений обратной связи. Сообщения могут приниматься "на лету" - без записи в БД, а только с отправкой на почту, и с сохранением в БД. Для сохранения заявок в БД необходимо создать таблицу по модели 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 - идентификатор формы. Если не задан, то будет использован сгенерированный случайный.