Создание TV галереи изображений с помощью MIGX

Часто стоит задача вывести в дополнительных полях галерею слайдера. Для этого удобно использовать дополнение MIGX.

1. Необходимо скачать и установить дополнение MIGX.
установить дополнение MIGX

2. Создаем дополнительное поле image, параметры ввода — изображение
дополнительное поле image

3. Создаем дополнительное поле slidertv — это и будет то поле галереи слайдера, которое должно быть доступно в нужном шаблоне. Переходим во вкладку «Параметры ввода»:

Тип ввода — migx:
тип ввода migx
Вкладки формы:

[{"caption":"Image", "fields": [
{"field":"alt","caption":"Alt"},
{"field":"title","caption":"Title"},
{"field":"image","caption":"Image","inputTV":"image"}]}]

Разметка колонок:

[{"header": "Image", "sortable": "false", "dataIndex": "image","renderer": "this.renderImage"},
{"header": "Title", "sortable": "true", "dataIndex": "title"},
{"header": "Alt", "sortable": "true", "dataIndex": "alt"}]

Во вкладке «Параметры вывода» — тип вывода «По умолчанию»

4. После этого на странице, у которой указан шаблон, для которого доступно дополнительное поле slidertv, Вы увидите загрузку для картинок слайдера. Можно добавить и другие поля, например, описание или ссылку, для этого нужно добавить такие поля во «Вкладки формы» и «Разметка колонок».
картинки для слайдера с помощью migx
5. Осталось вывести эти картинки, например, в сниппете:

$resource = $modx->getObject('modResource', $id); //id страницы, у которой заполнено дополнительное поле с картинками слайдера
$images = $modx->fromJSON($resource->getTVValue('slidertv'));
foreach($images as $img){
$title = $img['title'];
$src = $img['image'];
$alt = $img['alt'];
}

С помощью MIGX можно создавать и другие сложные TV, но лучше не использовать его для большого количества данных, т.к. в базе данных дополнительное поле на основе migx хранится в одном поле varchar в виде json и его сложно будет сортировать или выводить сложным запросом. Для таких данных лучше создавать свой компонент.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *