Расширяем возможности виджета "Формы"

+7
1.21K

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

При установке виджета, появляется такая опция:

Изображение

Соответственно здесь два режима показа формы — стандартно или по клику в модальном окне:

Изображение

Выбираем в модальном окне и заполняем простые настройки:

Изображение

Наблюдаем на сайте:

Изображение

При клике на кнопку вызывается форма в модальном окне.

Изображение

Данная доработка заменяет системные файлы виджета «Форма». Установка — на свой страх и риск. Так, этот вариант полностью рабочий, но при обновлении системы может перестать работать. Скачайте прикрепленный файл к этому посту, и содержимое архива загрузите на ваш сервер с заменой файлов.

Прикреплённый файл:
Скачать 5 Кбскачан 45 раз
0
Happy Happy 2 года назад #

То есть можно добавлять любые поля 

Make Make 2 года назад #
Комментарий удален
0
Happy Happy 2 года назад #

А куда приходит на мыло или уведомлением на сайте  ?

Make Make 2 года назад #
Комментарий удален
0
Алексей Т Алексей Т 2 года назад #

Вот тебе и мини магазин))) Спасибо. Отлично было бы сделать еще вывод виджета шорткодом. Хотя есть такой компонент уже.

Олег Васильевич я Олег Васильевич я 2 года назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 2 года назад #
Комментарий удален
Make Make 2 года назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 2 года назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 2 года назад #
Комментарий удален
Make Make 2 года назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 2 года назад #
Комментарий удален
+2
Zau4man Zau4man 2 года назад #

А теперь также, только без правок системных файлов.

Перед выводом формы есть хук github.com/instantsoft/icms2/blob/6348d4b3accd8b9e0a94aaa1a10c37b4b829112a/system/controllers/admin/actions/widgets_edit.php#L39

В случае с forms будет widget_forms_form_form

В хуке с помощью $form->getStructure() получаем массив структуры формы. Перебираем наборы, добавляем/меняем поля, наборы, и с помощью $form->setStructure просим форму использовать нашу новую структуру. Можно по аналогии с этим instantcms.ru/blogs/peredvigaem-svoistva-nizhe-polei-v-forme-dobavlenijaredaktirovanija-zapisi-tipa-kontenta.html

А дальше либо подкинуть этот хук в чужой компонент (зловещее ха-ха-ха) либо оформить отдельным пустым компонентом с этим хуком. И если совсем правильно, то пропишем этот компонент в базу, чтобы можно было всегда отключить и хук перестал работать.

Make Make 2 года назад #
Комментарий удален
+1
Zau4man Zau4man 2 года назад #

Вам понравится. В хуках есть своя «магия». И не страшно обновляться. Совсем-совсем.

Пример добавления поля в уже имеющуюся форму есть тут instantcms.ru/blogs/gruppiruem-nabory.html

Make Make 2 года назад #
Комментарий удален
+1
Алексей Т Алексей Т 2 года назад #

Довольно часто мне для своих проектов надо эта функция. Что бы при клике на кнопку выводилась форма. У меня есть стороннее решение, но хотелось бы системное решение.

Еще от автора

Бесплатный компонент - управление страницами 404
Простой компонент, который позволяет переопределить настройки дефолтной страницы 404, а также установить новую на выбор из двух представленных шаблоно
User-Panel v.1.0.4
Большое обновление виджета, множество улучшений, а также дополнительный запланированный функционал.
User-панель. Функциональное меню для вашего сайта
Виджет, который позволит вывести на вашем сайте функциональную панель с различными настройками.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.