MIGX галерея
изображений или слайдер

Кирилл 18.2K просмотров

Удобное решение, которое позволит создать галерею для определенного шаблона, если необходимо вывести небольшое число изображений. Например, можно использовать для карточки товара интернет-магазина. Не забудьте проверить, чтоб у вас был установлен компонент MIGX из официального репозитория пакетов.

Если нужно загружать большое количество изображений — следуйте инструкции по созданию галереи MIGX с мультизагрузкой и источником файлов.

Создаём TV-параметр: имя gallery, название «Галерея», делаем доступным для нужного шаблона, тип ввода — «migx». Тут нас интересуют две настройки.

Вкладки формы

JSON
[{"caption":"", "fields": [
    {"field":"image","caption":"Изображение","inputTVtype":"image"},
    {"field":"title","caption":"Название"}
  ]
}]

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

JSON
[{
  "header": "Изображение", "sortable": "false", "dataIndex": "image", "renderer": "this.renderImage"
},
{
  "header": "Название", "sortable": "true", "dataIndex": "title"
}]

Мы создали 2 поля для ввода, изображение и название. В случае, если вы создаете слайдер, можно добавить дополнительные поля, например ссылку на подробное описание. Или же, вы можете убрать поле название.

Сохраняем, заходим в ресурс, который использует шаблон с нашим TV параметром, и в дополнительных полях видим таблицу. С помощью нее мы будем добавлять, редактировать и удалять наши изображения. У меня она выглядит следующим образом (поле "Название" я не использую, добавляются только изображения).

Скриншот галереи MIGX у ресурса MODX

Заходим в редактирование шаблона, в месте где будет выводится галерея, добавляем вызов сниппета "getImageList" (он устанавливается вместе с компонентом MIGX).

MODX
[[getImageList?
    &tvname=`gallery`
    &tpl=`gallery_item_tpl`
]]

Мы указали параметры:

  • &tvname— имя TV-поля с типом ввода migx;
  • &tpl— чанк, который выводит каждую строку нашей таблицы с галереей.

Остальные параметры можно посмотреть в самом сниппете «getImageList».

Нам осталось создать чанк gallery_item_tpl, содержимое у меня получилось такое:

HTML
<a href="[[+image]]" title="[[+title:esc]]" rel="gallery" class="fancybox">
	<img src="[[phpthumbon? &input=`[[+image]]` &options=`w=200&h=150&zc=1`]]" alt="[[+title:esc]]">
</a>

Обратите внимание, что превью изображений уменьшаются с помощью сниппета "phpthumon", вам нужно его установить или же использовать "phpthumbof". Так же, в моем примере, используется "Fancybox" для увеличения изображений и объединения их в галерею.

Обсудим ваш проект?

Расскажите о задаче — вернёмся с планом работ и оценкой сроков. Обычно отвечаем в ближайшее время.

Сначала посмотреть кейсы