[РЕШЕНО] 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
modx.pro
570
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}
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        11