Form Constructor for October CMS
Данный плагин предназначен для разработчиков. Позволяет упростить внедрение форм на сайт, организовать управление формами для заказчика.
Плагин использует Ajax обработчик через стандартный data-attributes-api. Все события управляются в административном интерфейсе.
Плагин предоставляет базовые partials для отрисовки форм. Стандартные заготовки довольно гибкие, но в некоторых случаях вам придется написать свои опираясь на пример базовых.
Из коробки доступна интеграция форм с SendPulse. Для этого необходимо заполнить настройки API SendPulse.
Дополнительные возможности. Интеграция заказов шопоголика с SendPulse. Требуется плагин OrdersForShopaholic.
Установка через composer
composer require catdesign/forms-plugin
Внимание! Не предоставляйте клиентам полный root доступ к системе, иначе они могут нарушить работу плагина, задав неправильные настройки. Создайте нового пользователя и назначьте разрешение "Менеджер".
Получение форм
Сначала создайте форму и необходимые поля. После создания формы ей будет присвоен код. Добавьте компонент "Forms" на нужные страницы сайта или в макет.
1. Получить по id
{% set form = Forms.getByID(1) %}
Я не рекомендую этот метод, так как при удалении формы вам придется заменить вызов в коде.
2. Получить по code
{% set form = Forms.getByCode('code') %}
Этот метод предпочтительнее, потому что вы всегда можете назначить код форме. (Требуются права разработчика)
Визуализация страницы (через макросы)
Импортируйте макрос в шаблон
{% import 'catdesign.forms::macros' as Constructor %}
Получить форму
{% set form = Forms.getByCode('code') %}
Открыть форму
{{ Constructor.open('css_id', form, 'css_classes', {additional_data_one: value, additional_data_two: value}) }}
Распечатать заголовок формы
{{ Constructor.title(form, 'css_title_classes', 'css_description_classes') }}
Распечатать все поля формы
{{ Constructor.fields(form, 'css_wrapper_classes') }}
Или печать индивидуального поля
{{ Constructor.hidden(form, 'field_code', 'css_classes', 'css_field_id') }}
{{ Constructor.text(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.select(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.number(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.checkbox(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.radio(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.textarea(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
Печать кнопки отправки (submit)
{{ Constructor.submit(form, 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
Закрыть форму
{{ Constructor.close() }}
Пример печати простой формы обратной связи из 2 полей
{% import 'catdesign.forms::macros' as Constructor %}
{% set form = Forms.getByCode('feedback') %}
{{ Constructor.open('feedback', form, 'form', {current_url: this.page.url}) }}
{{ Constructor.title(form, 'form__title', 'form__description') }}
{{ Constructor.text(form, 'name', 'form-group__field', 'form__group', 'feedback-name') }}
{{ Constructor.text(form, 'phone', 'form-group__field', 'form__group', null) }}
{{ Constructor.submit(form, 'button button__green', 'form__button', null) }}
{{ Constructor.close() }}
Обратите внимание, что макропеременные являются необязательными. Вы можете передать значение null, например, если вам не нужны css_classes
Видео
Данная видео поможет узнать больше о данном продукте.
Версии
История версий и анонс дополнений. Оставьте свои отзыв во вкладке поддержка. Все интересные идеи будут рассмотрены и по возможности реализованы.
Версия 1.0.1
Первый релиз.
Версия 1.0.2
Добавлена интеграция с сервисом рассылки SendPulse. Добавлена интеграция плагина OrdersShopaholic с SendPulse.
Версия 1.0.3
Разработка набора макросов для более гибкого рендера. Макросы позволят быстрее развертывать формы.
Разработка дополнения - Telegram for Form Constructor
По просьбам пользователей будет разработано платное расширение позволяющее отправлять сообщения в телеграм. Точные сроки пока не анонсирую.
Отправить запрос
Принимаем баг-репорты. Вы можете отправить нам запрос на получение помощи или предложение по улучшению функционала. Все сообщения обрабатываются в течении 24 часов.