Всем привет.
Сейчас работаю над шаблоном Loading Page и обнаружил что в системном компоненте Конструктор форм, нет возможности вывести форму с помощью шорткода. А ведь часто приходиться какой то красиво оформленный текст вывести рядом с формой.
Давайте создаем хук, с помощью которого появиться возможность использовать шорткоды в виджетах.
Для этого в папке\system\controllers\forms\hooks\ создаем файл widgets_before_list.php
Открываем этот файл и внутри вставим код
<?php class onFormsWidgetsBeforeList extends cmsAction { public function run($data){ foreach ($data as $widget) { $data[$widget['id']]['options']['content'] = $this->parseShortcode($widget['options']['content'], false); } } } return $data; } }
Переходим в админку — Компоненты — Управление событием — появиться новое событие widgets_before_list, поэтому нажимаем Обновить
На этом всё, в виджетах теперь можете использовать шорткоды, например {forms: системное_имя_формы} при этом в настройках конструктора должна быть включена опция ☑️ Разрешить шорткоды
Скачать
Для тех, кто не хочет всё вручную создавать, прикрепил архив, который загружает файл и обновить событие.
Установка обычная, через админку
Реклама #
Capitan 2 года назад #
А есть пример, а лучше видео как использовать конструктор форм? Спасибо.
My-InstantCMS.Ru 2 года назад #
Лучше спросите, что не получается?
Создаете форму, укажете сис. имя, заголовок и почту, куда надо отправить данные с формы.
Сохраняете, после чего попадает на страницу, где надо создать Поля (как в типе контента)
Создаёте поля, например для обратной связи — это Имя, Почта, Телефон, Комментарий.
И всё.
Можете эту форму использовать в типах контента, по прямой ссылке, на стороннем сайте или в виджетах, с помощью данной доработки.
Mertag93 6 месяцев назад #
Доброго времени суток. Может вопрос не по теме но уже не знаю что курить) Никак не могу понять как добавить клас к полям чтоб их стилизовать. Стоит версия 2.16.3. К кратце била форма в iForm после обновления InstantCMS обратил внимание что начало сыпать спамом доколупался к iForm он уже глух (викидивает ошибку и не видет ту форму которая есть на сайте) Решил сделать форму через Конструктор форм и никак не могу разобраться. Саму форму я сделал она отправляет письма все путем но не могу понять как применить к ней стили прошлой формы.
Loadырь 2 года назад #
Если создать хук с названием render_page, то можно выводить шорткоды в любом html коде и не только в виджетах.
KoRn 2 года назад #
Спасибо, как раз пригодилось.