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

+7
1.24K

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

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

Изображение

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

Изображение

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

Изображение

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

Изображение

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

Изображение

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

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

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

+1
Make Make 3 года назад #

Ну да. В компоненте конструктор форм, который идет в версиях 2.14 и выше

0
Happy Happy 3 года назад #

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

0
Make Make 3 года назад #

Как настроить в компоненте. Вы им никогда не пользовались? 

0
Алексей Т Алексей Т 3 года назад #

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

0
Олег Васильевич я Олег Васильевич я 3 года назад #

Уже не первый человек спрашивает

Т.е. человеков было даже больше одного? Сумасшедший интерес!

0
Олег Васильевич я Олег Васильевич я 3 года назад #

Уже не первый человек спрашивает

Т.е. спрашивающих человеков было точно больше, чем ноль, и даже больше, чем один? Фантастический интерес!

0
Make Make 3 года назад #

Опять сарказм) И почему я не удивлен 😁 Олег Васильевич, ну вот вот не можете вы мимо моих постов пройти и не ответить что-то ехидное) 

0
Олег Васильевич я Олег Васильевич я 3 года назад #

Мимо ваших постов пройти как-то могу. А вот мимо откровенного, да ещё и бессмысленного, вранья не умею. Уж простите!

0
Олег Васильевич я Олег Васильевич я 3 года назад #

Мимо ваших постов пройти как-то могу. А вот мимо откровенного, да ещё и бессмысленного, вранья не умею. Уж простите!

0
Make Make 3 года назад #

Ну что ж, куда скинуть скриншоты вопросов? По количеству — это больше трёх и меньше пяти. И это определенно подходит под формулировку «уже не первый человек». Ну или могу этих людей сюда в комментарии позвать. Не понимаю я вас, Олег Васильевич. Может уже выясним, что произошло в течение этого года, что вы так " Переобулись"? Хотя ещё вроде совсем недавно нормально общались. Брюзжите, как старик, которому лишь бы пальцем куда ткнуть — ведь все вокруг Портосы, один вы Дартаньян... 

0
Олег Васильевич я Олег Васильевич я 3 года назад #

Ваши доказательства количества просьб убедительны. Я был не прав, прошу простить!

+2
Zau4man Zau4man 3 года назад #

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

Перед выводом формы есть хук 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

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

0
Make Make 3 года назад #

Можно и так, так конечно лучше будет. Перепишу

+1
Zau4man Zau4man 3 года назад #

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

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

0
Make Make 3 года назад #

👍

+1
Алексей Т Алексей Т 3 года назад #

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

Еще от автора

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