Конструктор - в форме 2.X

2838
Конструктор - в форме
Представляю новый тип поля, который непосредственно связан с конструктором форм iForms.


Тип поля «Форма iForms – в форме».

Данный тип поля позволяет вывести поля выбранной формы в форму создания/редактирования записи в типах контента.

При установке данного типа поля в выбранный тип контента у вас уже должна быть готовая форма, поля которой вы планируете разместить в общей форме создания / редактирования записи.

Сама форма в конструкторе создаётся стандартным образом. Указывать, кому отправлять данные из этой формы, нет необходимости, так как в данном варианте исполнения, сама форма как таковая, отсутствует. Но доступны два события «Событие перед валидацией формы» и «Событие после валидации формы». С их помощью можно сделать многое.

Из настроек формы конструктора нам, возможно понадобятся такие настройки, как «Шаблон письма» во вкладке «Внешняя почта» и «Отключить страницу формы» во вкладке «Разное». И кое-что из вкладки «Шаблон».

Внешне, форма в типе контента и форма конструктора, похожи. Единственное отличие при выводе её в форме контента, так это отсутствие заголовка и описания самой формы и кнопки «Отправить». Также имеются некоторые ограничения в работе полей в виде набора от полей в виде формы. Например валидация формы с помощью Jquery в типе контента не будет работать не зависимо от настроек формы.

Проверка значений полей формы конструктора осуществляется наравне с системными полями. Поэтому все значения правил типа «Поле должно быть заполнено» или «Только целые числа», также будут подсвечены в случае их несоответствия.

Дальше лучше рассказать на примере. Создадим новое псевдо-поле или другими словами сконструируем новый тип поля - «Поле “Время работы”».

Создаём форму, в ней создаём поля
Спойлер
Группу полей «Режим работы» я создал, чтобы в общей форме типа контента выделить поля из формы конструктора, но это не обязательно.
Все поля «Дата и время» имеют такие настройки
Спойлер
Поля для ввода времени перерыва имеют небольшое отличие в стилизации поля
Спойлер
Для вывода данных о выходных и не рабочих днях в субботу и воскресенье, используем строковое поле, которое будет заполнено в случае, если поле с временем работы не заполнено.
Спойлер
В итоге наша форма в конструкторе форм будет выглядеть так
Спойлер
А в форме редактирования записи будет выглядеть так (я её разместил сразу под заголовком статьи)
Спойлер
Заполняем форму и сохраняем статью. Обратите внимание, что поле «Суббота, выходной» скрылось при заполнении поля «Сб», а поле «Воскресенье, выходной» осталось, так как поле «Вс» мы оставили пустым. Все скрываемые поля обнуляются, и впоследствии в записи не выводятся. За исключением поля типа «Флаг iForms», у которого нет пустого значения.
Спойлер
После сохранения получим такой результат в статье, что немного не то, что нам хотелось.
Спойлер
Содержимое всех полей из конструктора форм сохраняются по умолчанию в виде списка (ul li). По этому коду, также будут фильтроваться записи при отображении поля «Форма iForms – в форме» в фильтре.
Спойлер
Но это можно исправить в настройках формы из конструктора в поле «Шаблон письма» во вкладке «Внешняя почта». Заходим в настройки формы и рисуем «таблицу» какую хотим мы видеть в статье, применяя специальные тэги {имя_поля} для содержимого полей.
Спойлер
Сохраняем и любуемся результатом на странице статьи.
Спойлер
Конечно, данный вид - «на любителя», но для нашей цели – создать поле из полей и показать, как это работает – вполне сгодится.
В итоге мы сгенерировали сконструировали новый тип поля прямо в админке сайта. Получилось почти как у r2 в генераторе компонентов, только слово сгенерировать, это ближе по его части, мне ближе слово сконструировать. laugh

Реклама
Вкратце расскажу обо всех изменениях, что произошли с конструктором.

В поле "Математические вычисления" добавился выбор большего или меньшего значения.
В поле "Поле заимствования" есть опция "Показывать результат", которая для администратора выведет значение этого поля. Сделано, для удобства настройки этого поля.
Добавлен новый шаблон для вывода формы - "Пошаговый стиль". В нём форма представляется в виде табов - шагов, и после заполнения полей на первом шаге, нажимаем кнопку далее - для перехода к следующему шагу.
Если в в настройках формы указать "Преобразовать группы полей в табы" и обязательное для проверки поле установить на втором и больше табе, то после валидации, в случае ошибки проверки поля, подсветится не только само поле, но и таб, в котором оно находится.

Сделаны большие оптимизации по коду, также максимально вынесены все инлайновые яваскрипты в отдельный файл.
В настройках поля сделаны небольшие правки css-стилей, для удобства пользования.
Больше глобальных изменений, после выхода обновления instantcms 2.5.0, я не помню.
Контроль версий
Компонент "Похожий контент". Обновление для InstantCMS 2.5.1 | Редактор разметки iTiny
Комментарии (19)
skewes 29 июня 2016 в 08:57 0
+
У меня 3.2.3 версия.
Позже свяжусь с вами по поводу формы)
Jestik 29 июня 2016 в 09:26 0
Добавлен новый шаблон для вывода формы - "Пошаговый стиль". В нём форма представляется в виде табов - шагов, и после заполнения полей на первом шаге, нажимаем кнопку далее - для перехода к следующему шагу.

Круто.... Надо будет как то купить на досуге
Loadырь 29 июня 2016 в 10:15 +1
Вот так она выглядит
чебурек дохлэй мыш 29 июня 2016 в 22:59 -1


Это компонент ошибся, или Вы так настроили?
Loadырь 30 июня 2016 в 06:08 +1
Конечно же я. Компонент не может ошибаться. laugh https://yadi.sk/i/pOUnUndMsthZM
Олег Васильевич я 29 июня 2016 в 10:51 +1
Конструктор "InstantCMS" становится ещё конструктивнее! shock
Игорь ФИН 29 июня 2016 в 11:23 0
большой плюс за эту доработку ( финансово тоже отблагодарю)
GoodMade.ru 29 июня 2016 в 12:05 0
Не дружище, это уже похоже на манию. Ты в детстве конструкторами не наигрался? laugh
Я конечно шучу.. Просто, что другого сказать нечего, только восхищение joke
GoodMade.ru 29 июня 2016 в 12:10 +1
Не, дружище..
laugh грамотей..
GoodMade.ru 29 июня 2016 в 12:13 +1
Как минимум половина моих прежних разработок уживаются в одном решение, в конструкторе форм hoho
vsemkrot 30 августа 2016 в 17:27 -1
а как преобрести этот конструктор ?? автор почему то не отвечает !!
Игорь ФИН 30 августа 2016 в 21:33 0
вроде был только недавно, всегда отвечает,
Loadырь 30 августа 2016 в 21:57 +1
Видимо, аффтар забухал заработался.
Игорь ФИН 19 сентября 2016 в 00:44 0
получил обновленную версию тестируем.
Алексей Тимофеев 1 декабря 2016 в 09:52 0
Являюсь обладателем данного компонента. Всем советую приобрести. Очень гибкий продуманный конструктор! Спасибо Loadырь за компонент.
zeffs 17 февраля 2017 в 20:01 0
Добрый день, купил чудо форму, а есть ли возможность в форме отправлять ссылку с какой страницы отправлена форма. Пример для наглядности.

Есть Иван, он продает товар, а Петр хочет купить. На странице с товаром iформа, Петр отправляет свои данные, телефон, текст ... , а в письме у Ивана, данные, телефон, текст ... + ссылка на страницу с товаром.
Loadырь 17 февраля 2017 в 20:23 +1
Конструктор форм - в форме вообще не шлёт письма, так как у него другая задача. А сам конструктор выведенный обычным или сквозным полем в типе контента или в виде виджета, указывает с какой страницы была отправлена форма. Если вы используете свой шаблон для письма в настройках формы, то там в описании к поля шаблона есть переменные которые вы можете указать в любом месте шаблона. Например вывести таким видом:
Код PHP:
  1. <a href="{page_uri}">{page_title}</a>
или так
Код PHP:
  1. <a href="{page_uri}">Перейти на страницу с товаром</a>
zeffs 17 февраля 2017 в 20:26 0
Спасибо за столь быстрый ответ, по изучаем.
zeffs 24 февраля 2017 в 13:13 0
Добрый день столкнулся с проблемой. На instantcms 2.7.1 при включении "Личные папки" пропадает форма

.

В чем может быть проблема?