Не работает getImageList, Mgix, docid
Здравствуйте. Нужна ваша помощь.
Создал ресурсы у них используется массовая загрузка изображений через Mgix ТВ называется resourcealbum.
На главной странице сайта с помощью данного tv выводится слайдер изображений в контенте.
Вызов выглядит так:
Основной слайдер — [[getImageList? &tvname=`resourcealbum` &tpl=`sp-slide` &processTVs=`1` ]]
Превью — [[getImageList? &tvname=`resourcealbum` &tpl=`sp-thumbnails` &processTVs=`1` ]]
Помимо этого у меня на главной странице необходимо вывести последние работы из галереи, из дочерних ресурсов.
Вызов выглядит так:
[[getImageList? &tvname=`resourcealbum` &docid=`49` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
[[getImageList? &tvname=`resourcealbum` &docid=`50` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
[[getImageList? &tvname=`resourcealbum` &docid=`51` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
Проблема заключается в том, что если в вызов getImageList добавляю &docid другого ресурса, то выводится только первый вызов [[getImageList? &tvname=`resourcealbum` &docid=`49` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
а все остальные вывозы при этом ломаются (не показываются изображения), если убираю &docid=
Например при вызове:
[[getImageList?
&tvname=`resourcealbum`
&docid=`52`
&limit=`1`
&tpl=`@CODE:[[+idx]][[+title]]
`]]
Выводятся элементы ресурса 52, как и должно быть.
А если далее есть вызов
[[getImageList? &tvname=`resourcealbum` &tpl=`sp-slide` &processTVs=`1` ]]
то выводится(неправильный путь к ресурсу 52 и так же неправильные названия фото:
Array
(
[MIGX_id] => 1
[image] => assets/resourceimages/52/usluga1.jpg
[deleted] => 0
[published] => 1
[published_ro] => {«MIGX_id»:1,«name»:«publish»,«use_as_fallback»:"",«value»:1,«clickaction»:"",«handler»:"",«image»:«assets\/components\/migx\/style\/images\/cb_ticked.png»,«idx»:0,"_renderer":«this.renderSwitchStatusOptions»,«selectorconfig»:""}
[_alt] => 0
[_first] => 1
[_last] =>
[idx] => 1
[property.tvname] => resourcealbum
[property.processTVs] => 1
)
Создал ресурсы у них используется массовая загрузка изображений через Mgix ТВ называется resourcealbum.
На главной странице сайта с помощью данного tv выводится слайдер изображений в контенте.
Вызов выглядит так:
Основной слайдер — [[getImageList? &tvname=`resourcealbum` &tpl=`sp-slide` &processTVs=`1` ]]
Превью — [[getImageList? &tvname=`resourcealbum` &tpl=`sp-thumbnails` &processTVs=`1` ]]
Помимо этого у меня на главной странице необходимо вывести последние работы из галереи, из дочерних ресурсов.
Вызов выглядит так:
[[getImageList? &tvname=`resourcealbum` &docid=`49` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
[[getImageList? &tvname=`resourcealbum` &docid=`50` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
[[getImageList? &tvname=`resourcealbum` &docid=`51` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
Проблема заключается в том, что если в вызов getImageList добавляю &docid другого ресурса, то выводится только первый вызов [[getImageList? &tvname=`resourcealbum` &docid=`49` &tpl=`newworkstpl` &processTVs=`1` &limit=`1` ]]
а все остальные вывозы при этом ломаются (не показываются изображения), если убираю &docid=
Например при вызове:
[[getImageList?
&tvname=`resourcealbum`
&docid=`52`
&limit=`1`
&tpl=`@CODE:[[+idx]][[+title]]
`]]
Выводятся элементы ресурса 52, как и должно быть.
А если далее есть вызов
[[getImageList? &tvname=`resourcealbum` &tpl=`sp-slide` &processTVs=`1` ]]
то выводится(неправильный путь к ресурсу 52 и так же неправильные названия фото:
Array
(
[MIGX_id] => 1
[image] => assets/resourceimages/52/usluga1.jpg
[deleted] => 0
[published] => 1
[published_ro] => {«MIGX_id»:1,«name»:«publish»,«use_as_fallback»:"",«value»:1,«clickaction»:"",«handler»:"",«image»:«assets\/components\/migx\/style\/images\/cb_ticked.png»,«idx»:0,"_renderer":«this.renderSwitchStatusOptions»,«selectorconfig»:""}
[_alt] => 0
[_first] => 1
[_last] =>
[idx] => 1
[property.tvname] => resourcealbum
[property.processTVs] => 1
)
Комментарии: 3
Тоже столкнулся с этой бедой. Удалось решить?
Может попробовать некешируемыми вызвать сниппеты?
Самое правильное решение, на мой взгляд — использовать вместо getImageList встроенные в Fenom функции по парсингу JSON и перебор с помощью шаблонизатора. Экономия на ресурсах, да и выглядит симпатично. Отказался от getImageList с появлением этой возможности и не нарадуюсь. Небольшой пример:
{if $_modx->resource.freeBonus?}
<div class="calculator-block">
<h3 class="calculator-block__heading">
<i class="calculator-block__ico calculator-block__ico_calc" style="background-image:url('images/ico_gift.png')"></i> Выберите бесплатные бонусы к услуге
</h3>
<div class="calculator-block__inner">
<form action="" class="calculator-bonus-form">
{var $bonuses = $_modx->resource.freeBonus|fromJSON}
{foreach $bonuses as $bonus}
<p class="calculator-bonus-form-item">
<input type="checkbox" class="calculator-bonus-form-checkbox" id="bonus-{$bonus.MIGX_id}" name="bonus-{$bonus['MIGX_id']}" value="{$bonus.bonus}">
<label class="calculator-bonus-form-item-text" for="bonus-{$bonus['MIGX_id']}">{$bonus.bonus}</label>
</p>
{/foreach}
</form>
</div>
</div>
{/if}
Единственный минус — отсутствие фильтрации по параметру. Однако, если расковырять сам сниппет getImageList и вычленить из него кусок кода, отвечающий за сортировку, то можно и сортировку прикрутить отдельным сниппетом и выводить в чанках через $pdo->getChunk(). Вообще красота получается. Можно в файловых элементах использовать. В общем, если покопаться в этом направлении, много прикольного можно найти.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.