Как использовать Fenom в шаблонах сниппетов?

Всем привет.
Вопрос простой, но я не могу найти примеров решения.
Есть пример вызова сниппета:
{'pdoResources' | snippet : [
                        'tpl' => 'card_tpl',
                        'parents' => '4',
                        'includeTVs' => 'images,price,params,tomain',
                        'limit' => '8',
                        'tvFilters' => 'tomain==1',
                        'processTVs' => '1'
                    ]}
Вопрос в том, как правильно составить чанк card_tpl. Плейсхолдеры TV-параметров в синтаксисе Fenom ({$price}, {$images}) не работают.
Спасибо за помощь.
Dmitry
19 сентября 2018, 14:24
modx.pro
2 032
0

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

Павел Романов
19 сентября 2018, 14:33
+1
Добавьте в вызов:
'tvPrefix' => '',
    Михаил
    19 сентября 2018, 14:51
    +1
    Ну если посмотреть документацию… то мы увидим, что в чанке надо сделать так:
    {$_pls['tv.tv_name']}
      Dmitry
      19 сентября 2018, 21:11
      0
      Да, действительно, в документации есть такой блок:

      Плейсхолдеры с точкой или тире
      Во многих местах MODX используются плейсхолдеры, которые нельзя указывать в Fenom, так как они не соотвествуют правилам наименования переменных PHP. Например, плейсхолдеры с точкой (MODX обычно выставляет так данные массивов) или с тире (ТВ параметры).
      
      Для доступа к этим плейсхолдерам нужно использовать вторую служебную переменную - {$_pls}:
      
      <!-- Вывод сразу -->
      {$_pls['tag.subtag']}
      
      <!-- Или через переменную -->
      {var $tv_name = $_pls['tv-name']}
      {$tv_name}
      Если плейсхолдер был выставлен в глобальный массив modX::placeholders, то его нужно получать вот так:
      
      {var $tag_sub_tag = $_modx->getPlaceholder('tag.sub_tag')}
      {$tag_sub_tag}
      
      {$_modx->getPlaceholder('tv_name')}
      При указании неправильных переменных ваш шаблон не будет скомпилирован и вы получите запись об этом в системном журнале.
      Но мне не было очевидно, что это распространяется на обычные плейсхолдеры в шаблонах. Спасибо за помощь!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3