Модуль "Форма обратной связи": различия между версиями
Abushyk (обсуждение | вклад) |
Abushyk (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
==Назначение== | ==Назначение== | ||
+ | Обработка оставляемых пользователями сообщений обратной связи. | ||
+ | Сообщения могут приниматься "на лету" - без записи в БД, а только с отправкой на почту, и с сохранением в БД. | ||
+ | Для сохранения заявок в БД необходимо создать таблицу по модели contactus и добавить первичный ключ с именем contactus_id в эту модель. | ||
==Предусмотренные поля== | ==Предусмотренные поля== | ||
− | + | В качестве первичного ключа используйте поле с именем '''contactus_id''' | |
− | Для фиксации даты добавления заявки, когда заявки сохраняются в своей таблице в БД, добавьте в модель поле с именем created_at и типом dtdatetime с доступом только для администраторов. | + | Если в модели формы обратной связи присутствует элемент с именем '''theme''' и типом ''select_box'', то тема письма будет формироваться с учетом выбранной темы. |
+ | |||
+ | Для фиксации даты добавления заявки, когда заявки сохраняются в своей таблице в БД, добавьте в модель поле с именем '''created_at''' и типом ''dtdatetime'' с доступом только для администраторов. | ||
==Добавление формы обратной связи на страницу== | ==Добавление формы обратной связи на страницу== | ||
Строка 19: | Строка 24: | ||
Формы, добавленные в шаблон таким образом, будут работать посредством ajax-запроса. | Формы, добавленные в шаблон таким образом, будут работать посредством ajax-запроса. | ||
+ | |||
+ | Функция get_order_form принимает массив параметров следующего вида: | ||
+ | |||
+ | '''form_class''' - классы формы, если нужно переопределить стандартные | ||
+ | |||
+ | '''onsuccess''' - имя JS-функции, которая будет вызвана в случае успешной отправки формы. В ней может быть реализован функционал закрытия модального окна, содержащего форму, например. Эта функция получит аргументом тестовый идентификатор формы. | ||
+ | |||
+ | '''form_id''' - идентификатор формы. Если не задан, то будет использован сгенерированный случайный. |
Текущая версия на 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 - идентификатор формы. Если не задан, то будет использован сгенерированный случайный.