[РЕШЕНО] miniShop2. Связи товаров, вывод с условием, Fenom
Подскажите, пожалуйста, как правильно указать переменную условия наличия у товара связанных товаров?..
Вызываю Связанные товары с условием:
Вызываю Связанные товары с условием:
{if ***************}
<h3>Сопутствующие товары:</h3>
{'!pdoPage@Bootstrap4' | snippet : [
'element' => 'msProducts',
'tpl' => 'tpl.msProducts.row',
'parents' => '2',
'link' => '1',
'limit' => '5',
'master' => $_modx->resource.id,
]}
{/if}
Решение:{var $links = '!pdoPage@Bootstrap4' | snippet : [
'element' => 'msProducts',
'tpl' => 'tpl.msProducts.row',
'parents' => '2',
'link' => '1',
'limit' => '5',
'master' => $_modx->resource.id,
'showlog' => 1
]}
{if $links?}
<h3>Сопутствующие товары:</h3>
<div class="card-deck">
<div class="row justify-content-around">
{$links}
</div>
</div>
{'page.nav' | placeholder}
{/if}
Комментарии: 11
'master' => $_modx->resource.id,
Благодарю, частично помогло, но вот с условием не срабатывает.
Думаю, что здесь
Думаю, что здесь
{if $_modx->resource.options?}
неверно указал переменную $options
А options это что, TV параметр, опция минишопа?
Блин… это я перепутал с msProductOptions
Подразумевалось, что это проверка на наличие связей у товара. Стандартная переменная минишопа (а вот есть ли такая не могу понять).
А вообще смысл такой — если есть сопутствующие товары — выводим блок, если нет — не выводим.
А вот как прописать переменную связей не могу сообразить.
Подразумевалось, что это проверка на наличие связей у товара. Стандартная переменная минишопа (а вот есть ли такая не могу понять).
А вообще смысл такой — если есть сопутствующие товары — выводим блок, если нет — не выводим.
А вот как прописать переменную связей не могу сообразить.
А вообще смысл такой — если есть сопутствующие товары — выводим блок, если нет — не выводим.Так просто можно присвоить результат в переменную:
{var $links = '!msProducts' | snippet : [
'parents' => 2,
'link' => 2,
'master' => $_modx->resource.id,
'tpl' => 'tpl.msProducts.row'
]}
{if $links?}
<div class="container">
{$links}
</div>
{/if}
Или использовать параметр toPlaceholder и также проверять его на пустоту.
Эх… умному всё просто а дураку всё морока…
Благодарю, помогло.
Благодарю, помогло.
Вот только теперь ещё нужно сообразить как пагинацию прикрутить
Да так же как обычно:
{var $links = '!pdoPage' | snippet : [
'elements' => 'msProducts',
'parents' => 2,
'limit' => '6',
'link' => 2,
'master' => $_modx->resource.id,
'tpl' => 'tpl.msProducts.row'
]}
{if $links?}
<div class="container">
{$links}
{'page.nav' | placeholder}
</div>
{/if}
Вот теперь красиво.
У меня с бутстрапом
У меня с бутстрапом
{var $links = '!pdoPage@Bootstrap4' | snippet : [
'element' => 'msProducts',
'tpl' => 'tpl.msProducts.row',
'parents' => '2',
'link' => '1',
'limit' => '5',
'master' => $_modx->resource.id,
'showlog' => 1
]}
{if $links?}
<h3>Сопутствующие товары:</h3>
<div class="card-deck">
<div class="row justify-content-around">
{$links}
</div>
</div>
{'page.nav' | placeholder}
{/if}
Вот что сваял… как-то криво, но работает
var $links = '!msProducts' | snippet : [
'parents' => 2,
'link' => 1,
'master' => $_modx->resource.id,
]}
{if $links?}
<h3>Сопутствующие товары:</h3>
<div class="card-deck">
<div class="row justify-content-around">
{'!pdoPage@Bootstrap4' | snippet : [
'element' => 'msProducts',
'tpl' => 'tpl.msProducts.row',
'parents' => '2',
'link' => '1',
'limit' => '5',
'master' => $_modx->resource.id,
]}
</div>
</div>
{/if}
{$modx->getPlaceholder('page.nav')}
{'!pdoPage@Bootstrap4' | snippet :[
'element' => 'msProducts',
'tpl' => 'tpl.msProducts.row',
'parents' => 2,
'link' => 1,
'limit' => 5,
'master' => $_modx->resource.id,
'toPlaceholder' => 'item'
]}
{if 'item' | placeholder}
<h3>Сопутствующие товары:</h3>
<div id="pdopage" class="card-deck">
<div class="rows row justify-content-around">
{'item' | placeholder}
</div>
{'page.nav' | placeholder}
</div>
{/if}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.