Всем привет.
Сейчас работаю над шаблоном 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 1 год назад #
А есть пример, а лучше видео как использовать конструктор форм? Спасибо.
My-InstantCMS.Ru 1 год назад #
Лучше спросите, что не получается?
Создаете форму, укажете сис. имя, заголовок и почту, куда надо отправить данные с формы.
Сохраняете, после чего попадает на страницу, где надо создать Поля (как в типе контента)
Создаёте поля, например для обратной связи — это Имя, Почта, Телефон, Комментарий.
И всё.
Можете эту форму использовать в типах контента, по прямой ссылке, на стороннем сайте или в виджетах, с помощью данной доработки.
Loadырь 1 год назад #
Если создать хук с названием render_page, то можно выводить шорткоды в любом html коде и не только в виджетах.
KoRn 1 год назад #
Спасибо, как раз пригодилось.