Позволяет управлять формами на сайте. Обрабатывает формы, отправляет данные в почтовых шаблонах. Интеграция SendPulse

Form Constructor for October CMS

Позволяет управлять формами на сайте. Обрабатывает формы, отправляет данные в почтовых шаблонах. Интеграция SendPulse
Автор: Семен Кузнецов
0 USD
Бесплатно
Получить

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

Плагин использует 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

Roadmap

План развития формируется из ваших пожеланий. Оставьте свои отзыв во вкладке поддержка. Все интересные идеи будут рассмотрены и по возможности реализованы.

1
Разработка дополнения - Telegram for Form Constructor

По просьбам пользователей будет разработано платное расширение позволяющее отправлять сообщения в телеграм.

Разработка набора макросов для более гибкого рендера

Макросы позволят быстрее развертывать формы. Изначально я планировал написать дополнения для Twig, но изучив тему макросов я пришел к выводу, что это тоже решает проблему.

Выполнено в обновлении v1.0.5.

Отправить запрос

Принимаем баг-репорты. Вы можете отправить нам запрос на получение помощи или предложение по улучшению функционала. Все сообщения обрабатываются в течении 24 часов.