Проблема с msGallery
При выводе каталога товаров в minishop2 возникла проблема с msGallery.
Товары на страницу выводятся сниппетом msProducts,
но в каталоге нужно выводить не одно картинку товара, а первые две из галереи.
Поэтому в шаблоне вывода товара есть вызов сниппета msGallery и выводятся первые две картинки
Вывод каталога:
Такое впечатление что msProducts после первой строки забывает, что его шаблон для вывода товаров это tpl.msProducts.row, и берет в качестве шаблона чанк из msGallery -> tpl.msProductImages
Товары на страницу выводятся сниппетом msProducts,
но в каталоге нужно выводить не одно картинку товара, а первые две из галереи.
Поэтому в шаблоне вывода товара есть вызов сниппета msGallery и выводятся первые две картинки
Вывод каталога:
[[!msProducts?
&parents=`10`
&depth=`1`
&limit=`10`
&tpl=`tpl.msProducts.row`
]]
шаблон товара tpl.msProducts.row:<li>
<div class="item">
<a href="" class="img_wrap">
[[!msGallery? &product=`[[+id]]` &tpl=`tpl.msProductImages`]]
</a>
</div>
</li>
tpl.msProductImages:<img src="{$files[0]['235x390']}" alt="" title="">
<img src="{$files[1]['235x390']}" alt="" title="">
однако как только добавляю в шаблон товара сниппет msGallery все ломается и в каталог выводится только одна строка с товаром, а дальше вместо каждого товара вот такой код<img src="" alt="" title="">
<img src="" alt="" title="">
Подскажите, пожалуйста, что делаю не так? В чем может быть ошибка?Такое впечатление что msProducts после первой строки забывает, что его шаблон для вывода товаров это tpl.msProducts.row, и берет в качестве шаблона чанк из msGallery -> tpl.msProductImages
Комментарии: 9
Все еще актуально!
а вы в tpl.msProductImages в любой title у картинок вставьте что-нибудь и убедитесь, что чанк какой надо подключается
Не пойму чем это может помочь, но сделал
в результате получил первый товар нормально — элемент списка li
а остальные: по два img с разными title вместо каждого товара
Вывод тот же, msProducts после первой итерации, вместо своего шаблона берет шаблон из msGallery
в результате получил первый товар нормально — элемент списка li
а остальные: по два img с разными title вместо каждого товара
Вывод тот же, msProducts после первой итерации, вместо своего шаблона берет шаблон из msGallery
покажите? Я чот не понимаю. Можете в личку.
Проблема не решена!
Здесь пример
s8697.h3.modhost.pro/index.php?id=1
очевидно что msGallery работает не верно
кто поможет?
Здесь пример
s8697.h3.modhost.pro/index.php?id=1
очевидно что msGallery работает не верно
кто поможет?
Можно сниппетом вывести
Вызов
$pdo = $modx->getService('pdoFetch');
if (!$tpl) {
$tpl = '@INLINE
{foreach $files as $file}
<img src="{$file.url}" alt="{$file.name}">
{/foreach}
';
}
if (!$id) {
$id = $modx->resource->id;
}
if (!$includeThumbs) {
$includeThumbs = '120x90';
}
if (!$limit) {
$limit = 0;
}
$output = '';
$rows = $pdo->getCollection('msProductFile', [
'product_id' => $id,
'path:LIKE' => '%'.$includeThumbs.'%',
'active' => 1
],
[
'select' => [
'msProductFile' => '*'
],
'limit' => $limit
]
);
if (!empty($rows)) {
$output = $pdo->getChunk($tpl, [
'files' => $rows
]);
return $output;
}
Вызов
[[SnippetName?
&id=`[[+id]]`
//&includeThumbs=`120x90`
//&tpl=`имя_чанка`
//&limit=`0`
]]
Спасибо огромное за помощь, так все работает!
но думаю стоит поправить msGallery, чтобы выполнял данную задачу
но думаю стоит поправить msGallery, чтобы выполнял данную задачу
Да msGallery в общем-то тоже самое делает.
Там какие-то проблемы с методом $pdoFetch->setConfig как я понял, но это уже Василию виднее.
Там какие-то проблемы с методом $pdoFetch->setConfig как я понял, но это уже Василию виднее.
Тут разжевано и приведен рабочий код — modx.pro/help/9853/#comment-86500
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.