Умные альтернативные элементы просмотра в цикле foreach

Я пытаюсь найти способ циклически перемещаться по элементам представления внутреннего цикла следующим образом:

Первый:

<div class="col-sm-6">
    <h3 class="padding-bot-20">{$row->service}</h3>{$row->content}
</div>
<div class="col-sm-6">
    <img class="img-responsive" src="{$this->images->frontend_check_image($row->main_image)}" alt="Service">
</div>

Второй:

<div class="col-sm-6">
    <img class="img-responsive" src="{$this->images->frontend_check_image($row->main_image)}" alt="Service">
</div>
<div class="col-sm-6">
    <h3 class="padding-bot-20">{$row->service}</h3>{$row->content}
</div>

и так далее... так что презентация - это контент/изображение, изображение/контент, контент/изображение и т.д.

Это основной код:

    <div class="container">
        {if count($row_services) == 0}
            No services published.
        {else}
            {assign var=i value=0}
            {foreach from=$row_services item=row}
                <div class="row scroll-animated-from-bottom {if $i > 0}padding-top-50{/if}" id="service-data-1">
                    <div class="col-sm-6">
                        <h3 class="padding-bot-20">{$row->service}</h3>{$row->content}
                    </div>
                    <div class="col-sm-6">
                        <img class="img-responsive" src="{$this->images->frontend_check_image($row->main_image)}" alt="Service">
                    </div>
                </div>
            {capture assign=i}{$i+1}{/capture}
            {/foreach}
        {/if}
    </div>

Я знаю, как это сделать в php, но не знаю, как это сделать в smarty. Я пытаюсь избежать каких-либо дочерних просмотров.


person Alex    schedule 28.06.2019    source источник


Ответы (1)


Это лучшее, что я мог придумать. Если у кого-то есть более элегантное решение, не стесняйтесь поделиться:

    <div class="container">
        {if count($row_services) == 0}
            No services published.
        {else}
            {assign var=i value=0}
            {foreach from=$row_services item=row}
                <div class="row scroll-animated-from-bottom {if $i > 0}padding-top-50{/if}" id="service-data-1">
                    {if ($i % 2 == 0)}
                        <div class="col-sm-6">
                            <h3 class="padding-bot-20">{$row->service}</h3>{$row->content}
                        </div>
                        <div class="col-sm-6">
                            <img class="img-responsive" src="{$this->images->frontend_check_image($row->main_image)}" alt="Service">
                        </div>
                    {else}
                        <div class="col-sm-6">
                            <img class="img-responsive" src="{$this->images->frontend_check_image($row->main_image)}" alt="Service">
                        </div>
                        <div class="col-sm-6">
                            <h3 class="padding-bot-20">{$row->service}</h3>{$row->content}
                        </div>
                    {/if}
                </div>
            {capture assign=i}{$i+1}{/capture}
        {/foreach}
    {/if}
</div>
person Alex    schedule 28.06.2019