Как задать атрибут топику второму по счету на главной LS 2.0 (Решено)

Здравствуйте! Скажите пожалуйста как в смарти задать атрибут второму по счету топику. К примеру есть код
{foreach $topics as $topic}
             {component 'topic' template='topic' topic=$topic isList=true}
         {/foreach}

И идет в выдаче топики по дате их появлений, мне нужно чтобы второй топик имел свой атрибут, имя…
Первому топику могу к примеру так

{foreach $topics as $topic name=xxx}
             {component 'topic' template='topic' topic=$topic isList=true}
         {/foreach}

и вывести в
<article class=" {if $smarty.foreach.xxx.first} first {/if}>
</article >

Соответственно первому топику могу присвоить атрибут first.
А вот как второму топику не знаю!

9 комментариев

avatar
{if $topic@index==1}
    second
{/if}
  • ort
  • 0
avatar
никакого результата… второму топику не присваивается атрибут second
avatar
Так $topic@index==2 наверное тогда уже, второй нужен.

На LS 2.0 не работал, на предыдущей версии такого рода правки делал просто на ПХП
catalog.livestreetcms.com/addon/view/276/
Возможно, не лучший вариант, но по мне как то проще и больше возможностей.
avatar
Я задавал $topic@index==2 ничего не работало. Попробывал плагин поставить, он активировался но результата нет всеравно
avatar
Активировался?
Такой код выполняет в шаблоне?
{php}
  echo "Да, я работаю!";
{/php}
avatar
$topic@index==2

это третий. индекс начинается с 0
avatar
{foreach $topics as $topic}
    {if $topic@first}
      {$classes = 'first'}
    {elseif $topic@index == 1}
      {$classes = 'second'}
    {/if}
    {component 'topic' template='topic' topic=$topic isList=true classes=$classes}
{/foreach}
avatar
second правда будет задаваться всем топикам после 1, но если поправить код вот так

{foreach $topics as $topic}
    {$classes = ''}
    {if $topic@first}
      {$classes = 'first'}
    {elseif $topic@last}
      {$classes = 'last'}
    {elseif $topic@index == 1}
      {$classes = 'second'}
    {elseif $topic@index == 2}
      {$classes = 'third'}
    {/if}
    {component 'topic' template='topic' topic=$topic isList=true classes=$classes}
{/foreach}


то получится вот такой результат
avatar
Спасибо! Работает!
Вот от vOFFka тоже хороший вариант, но меня он в моем случае не очень устроил так как у меня masonry используется, а в остальных случаях очень даже!
{foreach $topics as $topic name=foo}
                    {if $smarty.foreach.foo.iteration == 2 or $smarty.foreach.foo.iteration == 11}
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-6 topic-card-wrapper js-masonry-item">
                            {component 'topic-card' mods='big' topic=$topic isList=true}
                        </div>
                    {else}
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-3 topic-card-wrapper js-masonry-item">
                            {component 'topic-card' topic=$topic isList=true}
                        </div>
                    {/if}
                {/foreach}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.