[РЕШЕНО] 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}
websfera
19 мая 2019, 11:50
99
0

Комментарии: 11

Aleksandr Huz
19 мая 2019, 13:12
0
'master' => $_modx->resource.id,
    websfera
    19 мая 2019, 13:32
    0
    Благодарю, частично помогло, но вот с условием не срабатывает.
    Думаю, что здесь
    {if $_modx->resource.options?}
    неверно указал переменную
    $options
      Андрей
      19 мая 2019, 20:00
      0
      А options это что, TV параметр, опция минишопа?
        websfera
        19 мая 2019, 20:14
        0
        Блин… это я перепутал с msProductOptions
        Подразумевалось, что это проверка на наличие связей у товара. Стандартная переменная минишопа (а вот есть ли такая не могу понять).
        А вообще смысл такой — если есть сопутствующие товары — выводим блок, если нет — не выводим.
        А вот как прописать переменную связей не могу сообразить.
          Андрей
          19 мая 2019, 20:46
          +1
          А вообще смысл такой — если есть сопутствующие товары — выводим блок, если нет — не выводим.
          Так просто можно присвоить результат в переменную:
          {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 и также проверять его на пустоту.
            websfera
            19 мая 2019, 20:53
            0
            Эх… умному всё просто а дураку всё морока…
            Благодарю, помогло.
            websfera
            19 мая 2019, 21:09
            0
            Вот только теперь ещё нужно сообразить как пагинацию прикрутить
              Андрей
              19 мая 2019, 21:19
              0
              Да так же как обычно:
              {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}
                websfera
                19 мая 2019, 21:42
                0
                Вот теперь красиво.
                У меня с бутстрапом
                {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}
            websfera
            19 мая 2019, 21:14
            0
            Вот что сваял… как-то криво, но работает
            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')}
              Дмитрий Середюк
              20 мая 2019, 11:15
              1
              0
              {'!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}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.