Настройка таблиц MIGX в MODX Revolution

Конфигурация MIGX TV

Допустим нам нужна простая таблица с распорядком работы магазина и время, когда он открывается/закрывается. Создайте новую TV (назовём её "operatingHours") используя Тип ввода MIGX TV(подразумеваю, что вы уже установили пакет MIGX через Система -> Управление дополнениями)

Я сделаю это через быстрое создание ТВ, вот как это выглядит:

Используйте следующий код для Вкладок формы. Вы увидите, что я написал JSON немного по-другому, чем автор MIGX плагина, но если синтаксис JSON правильный - значит всё в порядке.

Итак, код для Вкладок формы:

Код
[ {"caption":"Operating Hours","fields": [ {"field":"day", "caption":"Day" },{ "field":"from", "caption":"From" },{ "field":"until", "caption":"Until" } ] }]

Даём имя для описания вкладки "Operating Hours" и далее добавляем три поля к ней: день, начало и конец работы. Мы не определяем тип ввода, просто подразумеваем, что это текстовое поле.

Теперь для вывода этого в панели ресурса, нам нужно установить Разметку колонок. Мы используем следующий код для этого:

Код
[ {"header": "Day", "width": "60", "sortable": "false", "dataIndex": "day"}, {"header": "From", "width": "50", "sortable": "false", "dataIndex": "from"}, {"header": "Until", "width": "50", "sortable": "false", "dataIndex": "until"} ]

Вставьте код приведенный выше в поля ТВ operatingHours:

Ввод значений для JSON массива и Разметки вкладок MIGx TV

Мы установили три колонки ("Day", "From" и "Until"), определили их ширину и соответствующий dataIndex (который должен быть тем же самым как и значение «поля» в форме) и также указываем, что он не должен сортироваться.

Наконец мы определили замену для "Add Item" в моём случае – это "Добавить новую строчку ".

В менеджере при открытии ресурса, шаблону которого доступно данное поле operationgHours вы теперь можете увидеть следующую картину:

Использование сниппета getImageList для вывода содержимого MIGx TV

Создайте несколько рядов и добавьте в них нужные данные:

Заполнение рядов таблицы - использование MIGx TV

Парсинг данных

Теперь на сайте мы должны вывести эти данные используя сниппет getImageList, который идёт вместе с MIGX дополнением.

Ниже приведен вызов сниппета, который нужно поместить в ваш шаблон в нужное для этого место:

Код
<table> [[getImageList? &tvname=`operatingHours` &tpl=`operatingHoursTpl` ]] </table>

Как видно на рисунке - я поместил вызов этого сниппета в поле Content, а для вывода его использовал обычный шаблон Base Template, который идёт вместе с базовой установкой MODX Revolution.

Использование сниппета getImageList для вывода содержимого MIGx TV

Это проверит TV operatingHours и спарсит её значения чанком operatingHoursTpl. Вот чанк, который мы использовали:

Код
<tr> <td>[[+day]]</td> [[+from:notempty=`<td>[[+from]]</td><td>[[+until]]</td>`:default=`<td colspan="2">Closed</td>`]] </tr>

В основном мы выводим табличный ряд для каждого ряда ТВ и помещаем соответствующие значения. В конце, когда уже значение from пусто, выводятся две колонки с текстом "Closed".

Результат

Использование сниппета getImageList для вывода содержимого MIGx TV

Это всего лишь маленький пример того, что можно сделать с помощью MIGX! Конечно же, можно сделать намного больше добавили больше колонок, других форм и т.д.

5284