Вывод формы с конструктора

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X

Вывод формы с конструктора в своём виджете

#1 Сегодня в 17:39

Всем привет. Подскажите делаю для себя виджет и хочу в нём выводить свою форму для связи.

В админке вывел поле с выбором форму, а вот на фронтенде не как не поддаётся чтобы вывести.

Изображение

в файле хочу вывести templates/мой шаблон/widgets/topmenu/topmenu.tpl.php

Подскажите куда копать. 

#2 Сегодня в 17:44

 litemir, в моем конструкторе Zbuilder есть элемент формы. И код вывода формы там простой

  1. <?php
  2. if(!empty($item)){
  3. $forms = cmsCore::getController('forms');
  4. echo $forms->parseShortcode("{forms:$item}");
  5. }

где $item — имя формы

Fuze позаботился, чтобы формы было удобно использовать, в том числе и в сторонних компонентах.

#3 Сегодня в 18:15

Не пробовал, но без шорткодов можно вывести напрямую

  1. <?php
  2. $forms_controller = cmsCore::getController('forms');
  3. list($form, $form_data) = $forms_controller->getFormData($form_id);
  4. ?>
  5. <div class="position-relative icms-forms__wrap">
  6. <?php $this->renderForm($form, [], $form_data['params'], false); ?>
  7. </div>

Соответственно, вместо $form_id надо передать id выбранной формы.

#4 Сегодня в 19:16

Не пробовал, но без шорткодов можно вывести напрямую

  1. <?php
  2. $forms_controller = cmsCore::getController('forms');
  3. list($form, $form_data) = $forms_controller->getFormData($form_id);
  4. ?>
  5. <div class="position-relative icms-forms__wrap">
  6. <?php $this->renderForm($form, [], $form_data['params'], false); ?>
  7. </div>

Соответственно, вместо $form_id надо передать id выбранной формы.

Loadырь

Спасибо. Мне подошёл этот способ.

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.