Условие по номеру элемента в fenom для галереи Новый

Дополнение: msGallery2

Здорово что продукт развивается, но вообще не понимаю как в феном написать что то чуть сложнее стандартных выражений.

Подскажите пожалуйста, как в чанке tpl.msGallery первому элементу дописывать класс, вот примерно так:
{foreach $files as $file}
	<a class="grouped_elements item [ЕСЛИ IDX=1 ТОГДА ПИШЕМ active]</b>" rel="group1" href="{$file['url']}">
		<img src="[[phpthumbon? &input=`{$file['url']}` &options=`w=400&h=270&zc=1`]]" alt="[[+description]]" width="400" height="270"/>
	</a>  
{/foreach}
Думаю, что должно быть как то так {if ($idx == 1)}active{/if}, но так не работает.

И ещё вопрос, может быть Minishop 2.4.0 как то можно к тегам modx вернуть? :) я только болеменее их освоил )))
12 сентября 2016, 16:42    Михаил   G+  
2    690 0

Комментарии (9)

  1. Михаил 12 сентября 2016, 18:21 # 0
    Раз удалить нельзя, то отвечу сам себе.
    Вот так:
    {$file['rank'] == '0' ? 'acive' : ''}

    Но есть другой вопрос, как теперь внутри этой конструкции использовать phpthumbon
    {foreach $files as $file}
                    <a href="{$file['url']}" target="_blank">
                        <img src="[[$phpthumbon? &input=`{$file['url']}` &options=`w=400&h=270&zc=1`]]" alt="" title="">
                    </a>
                    {$file['rank'] == '0' ? 'acive' : ''}
                {/foreach}
    (Да я знаю, что убиваю весь прирост в скорости от использования fenom)
    1. Михаил 12 сентября 2016, 18:57 # 0
      Вторая часть вопроса тоже снимается. Разобрался и в целом чудно пообщался сам с собой :)
      1. lexikon 12 сентября 2016, 20:11 # 0
        все проще
        {foreach $photos as $photo first=$first}
               <div class="items__photo{$first?' active':''}"><img src="{$photo}"></div>
        {/foreach}
        
        и не надо городить конструкции вида
        {if $value@first} first item {/if}
        PS
        phpthumbon можно вызывать как модификатор fenom
        <img src="{$_pls['tv.image']|phpthumbon:'w=698&h=320&zc=1'}" alt="{$description}">
        1. lexikon 14 сентября 2016, 12:48 # 0
          отличный минус) за помощь )
          1. Михаил 14 сентября 2016, 14:01 # 0
            Это не я. И большое спасибо. Переменная феном, как параметр, там кстати тоже работает.
    2. but1head 12 сентября 2016, 18:48 # +2
      https://github.com/fenom-template/fenom/blob/master/docs/ru/tags/foreach.md

      {foreach $list as $value}
       <div>{if $value@first} first item {/if} {$value}</div>
      {/foreach}
      
      или
      
      {foreach $list as $value first=$first}
       <div>{if $first} first item {/if} {$value}</div>
      {/foreach}
      1. Максим 12 сентября 2016, 22:31 # +1
        Вот это тоже лажа, я считаю:
        <img src="[[phpthumbon? &input=`{$file['url']}` &options=`w=400&h=270&zc=1`]]" alt="[[+description]]" width="400" height="270"/>
        
        Зачем смешивать синтаксис, если можно тут же использовать $_modx->runSnippet. Во-первых, это дает возможность манипулировать параметрами; во-вторых, можно возвращать из сниппетов массивы, а не строки.

        Вообще, с переходом на Fenom Minishop стал только лучше, делать магазины быстрее и удобнее. Хорошо бы и до mFilter очередь дошла.
        1. Роман Садоян 12 сентября 2016, 23:07 # +1
          Зачем смешивать синтаксис, если можно тут же использовать $_modx->runSnippet.
          +

          Вообще, с переходом на Fenom Minishop стал только лучше, делать магазины быстрее и удобнее. Хорошо бы и до mFilter очередь дошла.


          {$_modx->runSnippet('!mFilter2', [
                 'paginator' => 'pdoPage',
                 'limit' => 0,
                 'element' => 'msProducts',
                 'filters' => 'ms|price:number,msoption|size:asc,msoption|color:asc,msvendor|country,ms|vendor:vendors',
                 'class' => 'msProduct',
                 'sort' => 'resource|pagetitle:asc,ms|vendor:asc',
                 'tplFilter.outer.ms|price' => 'tpl.mFilter2.filter.slider.rol',
                 'tplFilter.row.ms|price' => 'tpl.mFilter2.filter.number.rol',
                 'tplOuter' => 'tpl.mFilter2.outer.rol',
                 'tplFilter.outer.default' => 'tpl.mFilter2.filter.outer.rol',
                 'tplFilter.row.default' => 'tpl.mFilter2.filter.checkbox',
                 'tpl' => 'tpl.msProducts.row.rol',
                 'tplPageWrapper' => '@INLINE <ul class="uk-pagination">{$first}{$prev}{$pages}{$next}{$last}</ul>',
                 'tplPage' => '@INLINE <li><a href="{$href}">{$pageNo}</a></li>',
                 'tplPageActive' => '@INLINE <li class="uk-active"><span>{$pageNo}</span></li>',
                 'tplPageSkip' => '@INLINE <li class="uk-disabled"><span>...</span></li>',
                 'tplPagePrevEmpty' => '@INLINE <li class="uk-disabled"><span>«</span></li>',
                 'tplPageNextEmpty' => '@INLINE <li class="uk-disabled"><span>»</span></li>',
                 'showLog' => 0,
                 'fastMode' => 0
                ])}
          Вот такой код и все сопутствующие чанки у меня полностью на феном.

          Или ты хочешь что бы всё из коробки было?
          1. Максим 12 сентября 2016, 23:55 # +1
            У меня тоже, но хочется без tplOuter и т.п. Я бы и сам сделал, загвоздка в статусе компонента.
        Вы должны авторизоваться, чтобы оставлять комментарии.