Что такое MIGX?
MIGX — это настраиваемая TV переменная для объединения нескольких TV в один. Такое агрегирование значительно упрощает рабочий процесс для конечных пользователей Менеджера по добавлению сложных элементов данных. Элемент данных может состоять из любого количества любых других TV, включая текст, изображения, файлы, флажки и т.д.
Пакет легко настраивается и позволяет разработчику определять настраиваемое окно ввода для MIGX TV. В этом окне ввода можно добавлять, изменять и переупорядочивать элементы.
Пакет также поставляется со сниппетом (getImageList), который упрощает получение сложных элементов данных из настраиваемого типа ввода MIGX TV.
MIGX это аббревиатура от Multi Items Grid TV для MODX.
Установка
MIGX можно загрузить через менеджер пакетов из основного репозитория.
Также вы можете скачать транспортный пакет из репозитория MODX здесь: https://modx.com/extras/package/migx
Основные моменты конфигурации
- «formtabs» — вкладки модального окна, если присутствует только одна вкладка, то они скрываются;
- «caption» — отображаемое название чего-либо(будь то вкладка или поле);
- «field» — уникальное название поля формы;
- «fields» — перечисление полей формы, находящиеся на данной вкладке, среди них:
— «name» — текстовое поле «Название»
— «url» — текстовое поле «Ссылка»
— «image» — поле с выбором изображения — «Изображение»
— «active» — список с одиночным выбором («Активный» или «Скрытый»).
Параметры ввода и рендера
- this.renderImage — вывод изображения;
- this.renderCrossTick — значки галочка\крестик для boolean полей;
- this.renderClickCrossTick — значки галочка\крестик для boolean полей с возможностью изменения значения кликом (поддерживается для MIGXdb);
- this.renderSwitchStatusOptions — изменение статуса кликом по полю (настраивается через Renderoptions);
- this.renderChunk — можно указать чанк, который будет выводиться для этого поля;
- this.renderDate — вывод даты.
Типы ввода / полей (inputTVtype)
- autotag -Авто-метка;
- text — Текст;
- textarea — Текстовая область;
- textareamini — Текстовая область (мини);
- richtext — Текстовый редактор;
- dropdown — Выпадающий список;
- listbox — Список (одиночный выбор);
- listbox-multiple — Список (множественный выбор);
- list-multiple-legacy — Устаревший список множественного выбора;
- option — Переключатели (radio);
- checkbox — Флажки (checkbox);
- image — Изображение;
- file — Файл;
- url — URL;
- email — Электронная почта;
- number — Число;
- date — Дата;
- tag — Тег;
Рендеры (Renderer)
- this.renderImage — вывод изображения;
- this.renderCrossTick — значки галочка\крестик для boolean полей;
- this.renderClickCrossTick — значки галочка\крестик для boolean полей с возможностью изменения значения кликом (поддерживается для MIGXdb);
- this.renderSwitchStatusOptions — изменение статуса кликом по полю (настраивается через Renderoptions)
- this.renderChunk — можно указать чанк, который будет выводиться для этого поля
- this.renderDate — используется для вывода даты
Плейсхолдеры getImageList
- [[+fieldname]] — любое поле из конфигурации MIGX или из переданных параметров в сниппет
- [[+idx]] — порядковый номер, начиная с 1
- [[+_first]] — вернет 1, если это первая запись
- [[+_last]] — вернет 1, если это последняя запись
- [[+_alt]] — вернет 1, если это четная запись
- [[+total]] — общее число элементов (можно изменить через &totalVar)
- [[+property.name]] — выведет параметр с именем &name= в вызове getImageList.
Параметры getImageList
- &tvname — название TV с типом ввода MIGX
- &tpl — имя чанка для вывода каждой записи. Можно использовать @CODE:, @FILE:, @FIELD
- &docid — можно указать ID документа, чей TV надо обработать. По умолчанию: [[*id]]
- &value — JSON строка для обработки getImageList. Если указан, параметры &docid и &tvname будут проигнорированы. Можно использовать для вывода в getImageList еще одного вызова getImageList
- &limit — количество записей для вывода. По умолчанию: 0
- &offset — количество записей, которые необходимо пропустить. По умолчанию: 0
- &totalVar — имя плейсхолдера, в котором содержится общее количество записей. По умолчанию: total
- &randomize — если установить 1, результаты будут отсортированы в случайном порядке. По умолчанию: 0
- &preselectLimit — вместе с параметров &randomize можно указать число записей, которые выведутся в любом случае. По умолчанию: 5
- &where — JSON строка с условиями выборки, например: {«active:=»:«1»,«rating:>»:«5»}
- &sort — JSON строка с условиями сортировки. Можно указывать несколько параметров: [{«sortby»:«age»,«sortdir»:«DESC»,«sortmode»:«numeric»},{«sortby»:«name»,«sortdir»:«ASC»}]
- &toPlaceholder — сохранить вывод в плейсхолдер
- &toSeparatePlaceholders — сохранить каждую запись в отдельный плейсхолдер.
- &outputSeparator — разделитель между результатами
- &wrapperTpl — чанк-обертка для вывода результатов. Принимает плейсхолдер [[+output]] для вывода результатов
- &processTVs — включить режим обработки вывода TV параметров (для полей с inputTV). По умолчанию: 1