Настройка таблиц 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:
Мы установили три колонки ("Day", "From" и "Until"), определили их ширину и соответствующий dataIndex (который должен быть тем же самым как и значение «поля» в форме) и также указываем, что он не должен сортироваться.
Наконец мы определили замену для "Add Item" в моём случае – это "Добавить новую строчку ".
В менеджере при открытии ресурса, шаблону которого доступно данное поле operationgHours вы теперь можете увидеть следующую картину:
Создайте несколько рядов и добавьте в них нужные данные:
Парсинг данных
Теперь на сайте мы должны вывести эти данные используя сниппет getImageList, который идёт вместе с MIGX дополнением.
Ниже приведен вызов сниппета, который нужно поместить в ваш шаблон в нужное для этого место:
<table> [[getImageList? &tvname=`operatingHours` &tpl=`operatingHoursTpl` ]] </table>
Как видно на рисунке - я поместил вызов этого сниппета в поле Content, а для вывода его использовал обычный шаблон Base Template, который идёт вместе с базовой установкой MODX Revolution.
Это проверит TV operatingHours и спарсит её значения чанком operatingHoursTpl. Вот чанк, который мы использовали:
<tr> <td>[[+day]]</td> [[+from:notempty=`<td>[[+from]]</td><td>[[+until]]</td>`:default=`<td colspan="2">Closed</td>`]] </tr>
В основном мы выводим табличный ряд для каждого ряда ТВ и помещаем соответствующие значения. В конце, когда уже значение from пусто, выводятся две колонки с текстом "Closed".
Результат
Это всего лишь маленький пример того, что можно сделать с помощью MIGX! Конечно же, можно сделать намного больше добавили больше колонок, других форм и т.д.