Доработка Конструктора форм

+10
393
Доработка Конструктора форм

Всем привет.

Сейчас работаю над шаблоном Loading Page и обнаружил что в системном компоненте Конструктор форм, нет возможности вывести форму с помощью шорткода. А ведь часто приходиться какой то красиво оформленный текст вывести рядом с формой.

Давайте создаем хук, с помощью которого появиться возможность использовать шорткоды в виджетах.

Для этого в папке\system\controllers\forms\hooks\ создаем файл widgets_before_list.php

Открываем этот файл и внутри вставим код

  1. <?php
  2. class onFormsWidgetsBeforeList extends cmsAction {
  3.  
  4. public function run($data){
  5.  
  6. if (empty($this->options['allow_shortcode'])) { return $data; }
  7.  
  8. foreach ($data as $widget) {
  9.  
  10. if (!$widget['controller'] && in_array($widget['name'], array('text', 'html'))) {
  11.  
  12. if (!empty($widget['options']['content']) && stristr($widget['options']['content'], '{forms:', false) !== false) {
  13. $data[$widget['id']]['options']['content'] = $this->parseShortcode($widget['options']['content'], false);
  14. }
  15.  
  16. }
  17. }
  18.  
  19. return $data;
  20.  
  21. }
  22.  
  23. }

Переходим в админку — Компоненты Управление событием — появиться новое событие widgets_before_list, поэтому нажимаем Обновить

На этом всё, в виджетах теперь можете использовать шорткоды, например {forms: системное_имя_формы} при этом в настройках конструктора должна быть включена опция ☑️ Разрешить шорткоды

Скачать

Для тех, кто не хочет всё вручную создавать, прикрепил архив, который загружает файл и обновить событие.

Установка обычная, через админку

Прикреплённый файл:
Скачать 2 Кбскачан 13 раз
+1
Capitan Capitan 29 дней назад #

А есть пример, а лучше видео как использовать конструктор форм? Спасибо.

+1
My-InstantCMS.Ru My-InstantCMS.Ru 29 дней назад #

Лучше спросите, что не получается?

Создаете форму, укажете сис. имя, заголовок и почту, куда надо отправить данные с формы.

Сохраняете, после чего попадает на страницу, где надо создать Поля (как в типе контента)

Создаёте поля, например для обратной связи — это Имя, Почта, Телефон, Комментарий.

И  всё.

Можете эту форму использовать в типах контента, по прямой ссылке, на стороннем сайте или в виджетах, с помощью данной доработки.

+3
Loadырь Loadырь 29 дней назад #

Если создать хук с названием render_page, то можно выводить шорткоды в любом html коде и не только в виджетах.

+1
KoRn KoRn 20 дней назад #

Спасибо, как раз пригодилось.

Еще от автора

Шаблон wave
Шаблон для компании любой тематики, вам надо просто изменить картинки, цвета и текст, что бы подогнать шаблон под тематику вашей копнений.
Обрезка фото и обложки профиля
Данный компонент добавляет возможность загрузить обложку профиля и обрезать их под определенные размеры.
Обновление шаблона LTE
Исправление всех известных багов и другие доработки в шаблоне LTE
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.