Вывод товаров с разным дизайном

Здравствуйте, кто знает, как вывести товары не однотипно, а с разным дизайном.
Т.е. я вывожу обычно, через
[[!pdoPage?
&element=`msProducts`
и т.д.
указываю tpl и в нём шаблонный вывод карточки товаров. А в диз.макете у меня правый товар по площади в 2 раза больше левых, а каждый третий шире и т.д. Так вот как это вообще реализовывается?
Valdis
12 августа 2021, 13:07
modx.pro
242
0

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

Алексей Ерохин
12 августа 2021, 13:41
0
НАсколько я знаю, msProducts не поддерживает tplOdd tplN_th и т.п. как pdoResources.

Вариант 1:
Если карточки простые — использовать pdoResources, но тут скорее всего есть подводные камни, например, будет ли цена со скидкой выводиться

Вариант 2:
В чанке одного товара использовать idx. [[+idx:mod:isequalto=`1`:then=`нечетный`:else=`четный`]]
[[+idx:mod=`3`:isequalto=`0`:then=`каждый третий`:else=`не третий`]]
    Андрей
    12 августа 2021, 15:43
    0
    НАсколько я знаю, msProducts не поддерживает tplOdd tplN_th и т.п. как pdoResources.
    Поддерживает, по сути это тот же pdoResources, только с добавленными параметрами.
    Shedko
    12 августа 2021, 15:42
    1
    +1
    docs.modx.pro/komponentyi/pdotools/snippetyi/pdopage
    По умолчанию pdoPage принимает все параметры pdoTools
    т.е.
    [[pdoPage?
        &element=`msProducts` 
        &parents=`50` 
        &tpl=`tpl.msProducts.row.Дилеры` 
        &tplOdd=`tpl.msProducts.row.БезЦены` 
        &limit=`250`
        &sortby=`{"menuindex":"asc"}
    ` ]]
    tplOdd + tpl — работает.

    Т.е. смотрим документацию

    Нас интересуют эти шаблоны:
    &tplFirst Имя чанка для первого ресурса в результатах.
    &tplLast Имя чанка для последнего ресурса в результатах.
    &tplOdd Имя чанка для каждого чётного ресурса (хоть «odd» значит «нечётный», работает для чётных ресурсов).
    &tpl_N Имя чанка для N-го ресурса, например, &tpl_4=`tpl4th` установит шаблон для 4-го ресурса.
    &tpl_nN Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.
    Вроде как на все Ваши потребности хватает встроенных условий.
      Андрей
      12 августа 2021, 15:44
      1
      +1
      Так вот как это вообще реализовывается?
      Для примера:
      {'!pdoPage' | snippet : [
      	'class' => 'msProduct',
      	'element' => 'msProducts',
      	'parents' => 151,
      	'tpl' => '@INLINE {$id} - {$pagetitle}',
      	'tpl_n2' => '@INLINE каждый 2й',
      	'tpl_n3' => '@INLINE каждый 3й',
      	'tpl_n4' => '@INLINE каждый 4й'
      ]}

      Почитать тут — Параметры шаблонов
        Valdis
        13 августа 2021, 15:49
        0
        всем спасибо, направление понял!
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5