Skip to content

Kolya1222/formbuild

Repository files navigation

FormBuildevo для FormLister/Sender

Модуль для формирования форм и запросов к FormLister/Sender.

Описание

Для упрощения жизни как разработчикам, так и людям, которые будут в дальнейшем поддерживать сайты. Был разработан модуль, понижающий порог входа в работу с формами в Evolution CMS. Теперь вам нет необходимости вручную создавать формы за вас это сделает этот конструктор. При помощи заранее заготовленных полей вы можете простым перетаскиванием создать свою форм. Получаемый результат в случае использования FormSender необходимо будет только разместить HTML в шаблоне. Создание файла для FormSender в 1 клик. Используйте горячие клавиши для быстрого добавления полей. Создавайте свои шаблоны для почты используя соответствующий раздел.

Возможности

Создание формы

  • Формировать структуру формы можно:
    • Перетаскиванием нужных полей в область конструирования
    • Нажатием кнопок "Добавить поле"

Настройка полей

При добавлении поля появляется окно редактирования с параметрами:

  • Часть параметров автоматически применяется в формировании правил для FormLister
  • Для каждого типа поля есть свои специфические параметры
  • Можно изменять тип поля после создания через выпадающий список "Тип поля"
  • Минимальный набор полей формируется автоматически, если параметры не указаны

Управление полями

  • Перетаскивание для изменения порядка полей
  • Редактирование и удаление созданных ячеек
  • Автоматическое формирование промежуточных результатов при изменениях

Настройки формы

  • Указание ID формы для FormLister
  • Изменение типа отправки (POST/GET)
  • Назначение action
  • Указание email для параметра "to" в FormLister
  • Дополнительные опции:
    • Работа с файлами
    • Формирование запроса для FormSender (создает запрос в новом формате включен при старте)

Результаты работы

Модуль предоставляет 3 основных вида результатов:

  1. HTML разметка для Blade шаблона
  2. PHP фрагмент для FormLister/Sender (включая параметры для setData)
  3. Визуализация формы с минимальной валидацией

Дополнительно:

  • Генерация PHP файла для FormSender (при использовании опции "без перезагрузки")
  • Редактор шаблонов email

При использовании опции "без перезагрузки" создайте отдельный PHP файл для FormSender (проверьте его создание по следующему путь: /core/custom/forms/ID_формы.php)

Техническая реализация

Модуль практически полностью работает на JS и состоит из 10 основных файлов:

  1. Main.js - инициализация, глобальные функции, управление tooltip, обработка кастомного select
  2. render-form.js - формирование результатов:
    • htmlOutput - HTML разметка
    • paramsOutput - PHP код
    • previewOutput - демонстрация формы
    • обработка статусов и валидации
  3. FormSettings.js - модальное окно настроек поля
  4. drag-drop.js - логика перетаскивания полей
  5. control-field.js - работа с полями (добавление, удаление, создание, tooltip)
  6. file-generation – отвечает за отправку в контроллер запроса на создание файла для FormSender.
  7. form-utils – общие для сохранения и загрузки функции и показ уведомлений теперь находится тут.
  8. load-form – логика для загрузки формы в рабочую область.
  9. save-form – отправка запроса на сохранение формы в контроллер.
  10. email-template - редактор reportTpl для составления шаблона письма.

Важно

  • Модуль не имеет обязательных полей. Вы формируете их сами про помощи Drag and Drop.
  • При работе с файлами необходимо явно указывать наличие файловых полей в форме.
  • Это инструмент для разработчиков, который можно дорабатывать под свои нужды.
  • Модуль не работает из коробки он создан для FormLister/FormSender и требует их установки для корректной работы.

Заключение

Это не полноценный модуль, а инструмент для разработчика, который может помочь:

  • В обучении работе с FormLister/Sender
  • В уменьшении рутинной работы при создании форм

Установка

Выполните команды из директории /core:

  1. Установка пакета
php artisan package:installrequire kolya1222/formbuildevo "*"
  1. Публикация стилей и скриптов
php artisan vendor:publish --provider="Kolya1222\Formbuild\FormbuildServiceProvider"
  1. Выполните миграции
php artisan migrate

About

Модуль для создания запросов к FormLister/Sender

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •