Jump to main content Jump to doc navigation

Использование на фронтенде

Вывод элементов MIGX

MIGX включает сниппет getImageList для вывода данных из MIGX TV. Несмотря на название, можно получать не только изображения. Думайте о нём как о популярном сниппете getResources, но для MIGX.

Примеры использования getImageList:

  • галереи изображений
  • слайдеры изображений или HTML
  • табличные данные
  • вывод в CSV или XML

Приступим.

Пример использования

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

<ul>
  [[getImageList?
    &tvname=`myMIGXtv`
    &tpl=`@CODE:<li>[[+idx]]<img src="[[+image]]"/><p>[[+title]]</p></li>
  `]]
</ul>

Разберём параметры. Первый, &tvname, это имя MIGX TV, которую вы создали в Использовании в бэкенде, шаг 2. &tpl это либо строка кода для элементов MIGX, либо имя чанка. Для строки кода добавьте префикс @CODE, как выше.

Если вы используете phpthumbof, нужен чанк, а не строка кода.

<ul>
  [[getImageList?
    &tvname=`myMIGXtv`
    &tpl=`thumbTpl`]]
</ul>

thumbTpl

<li>
  <img src="[[+image:phpthumbof=`w=300&h=300&zc=1`]]" alt="[[+title]]"/>
</li>

MIGX вместе с getResources

Вы можете вызывать getImageList из getResources, чтобы собрать галерею галерей.

<li>
  <a href="[[~[[+id]]]]">[[+pagetitle]]</a>  
  [[getImageList?
    &tvname=`myMIGXtv`
    &tpl=`thumbTpl`
    &limit=`1`
    &docid=`[[+id]]`
  ]]
</li>

Готово. У вас есть собственная MIGX-галерея изображений.

Значения getResources в вызове MIGX

Чтобы использовать значения getResources в чанке, который вызывает getImageList, передайте их как параметры вызова сниппета и обращайтесь через плейсхолдер +property.

Передайте их в вызове сниппета:

[[getImageList?
    &tvname=`myMIGXtv`
    &tpl=`thumbTpl2`
    &docid=`[[+id]]`
    &limit=`1`
    &pagetitle=`[[+pagetitle]]`
    &originalResourceId=`[[+id]]`
]]

Затем используйте их в чанке с префиксом +property.:

  <li>
    <img src="[[+image:phpthumbof=`w=300&h=300&zc=1`]]" alt="[[+title]]" />
    <a href="[[~[[+property.originalResourceId]]]]">See more images from [[+property.pagetitle]]</a>
  </li>

Ещё один пример из обсуждения на форуме, который привёл к примеру выше.

Свойства

Name Description Default
tvname имя вашей MIGX TV
tpl имя чанка для каждой записи. Можно также @CODE: или @FILE:. Если пусто, getImageList выведет массив записей в виде строки
docid показать записи MIGX из других ресурсов. Полезно в шаблонах getResources с &docid=`[[+id]] [[*id]]
value передать собственную JSON-строку в getImageList вместо вывода TV. Тогда tvname и docid игнорируются
limit если не 0, выводит только X элементов 0
offset индекс, с которого начинать выборку при ограничении числа элементов 0
totalVar ключ плейсхолдера для общего числа. Полезно с getPage для пагинации total
randomize задайте ``&randomize=`1```, если нужен случайный порядок 0
preselectLimit вместе с &randomize предварительно выбирает элементы сверху до limit. Для изображений, которые должны попасть в случайный вывод в любом случае 5
where фильтр элементов. Пример: {"active:=":"1","rating:>":"5"}
sort сортировка по нескольким полям. Пример: [{"sortby":"age","sortdir":"DESC","sortmode":"numeric"},{"sortby":"name","sortdir":"ASC"}]
reverse задайте &reverse=1, чтобы вывести всё в обратном порядке 0
toPlaceholder вывод в плейсхолдер. Пример: &toPlaceholder=`MIGX```, результат в [[+MIGX]]``
toSeparatePlaceholders вывод элементов в отдельные плейсхолдеры. Пример: &toSeparatePlaceholders=`MIGX```, элементы в [[+MIGX.1]] [[+MIGX.2]]`` ...
placeholdersKeyField вместе с &toSeparatePlaceholders. Пример: &placeholdersKeyField=`title```, элементы в [[+MIGX.firsttitle]] [[+MIGX.thirdtitle]]`` ...
outputSeparator разделитель между элементами
toJsonPlaceholder вывод элементов как JSON в плейсхолдер. Полезно, если нужно показать случайные элементы в разных местах
example: &toJsonPlaceholder=`jsonoutput``` -> [[getImagelist? &value=[[+jsonoutput]]................]]``
jsonVarKey пример: &jsonVarKey=`migx_json```. Возьмёт значение из $_REQUEST['migx_json']``, если оно есть
useful together with the backend-preview-feature migx_outputvalue

Плейсхолдеры

Placeholder Description
[[+fieldname]] замените fieldname на имя вашего поля
[[+idx]] индекс каждого элемента, всегда начинается с 1
[[+_first]] возвращает 1, если это первая строка
[[+_last]] возвращает 1, если это последняя строка
[[+_alt]] возвращает 1 через каждую вторую строку
[[+total]] число всех строк. Замените total на ваш totalVar
[[+property.name]] любой параметр вызова сниппета. Например, при &docid=20`` плейсхолдер [[+property.docid]] вернёт 20

Расширенное использование

Переключение шаблона

С &tpl=@FIELD:`` вы можете использовать любое поле как имя шаблона и менять tpl от элемента к элементу.

  [[getImageList?
    &tvname=`myMIGXtv`
    &tpl=`@FIELD:tpl`
  ]]

Если в настройке MIGX TV есть поле tpl, getImageList возьмёт его значение как tpl элемента. Значение должно совпадать с тем, что вы указали бы в &tpl: имя чанка, @CODE:..., @FILE:...

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more