Механизм выражений: разбить записи на группы - PullRequest
0 голосов
/ 08 апреля 2011

Быстрый вопрос: как вывести все записи из данного канала в группы по 4, например:

<div class="entry_group">
    <div class="entry" id="1"><span>{title}</span></div>
    <div class="entry" id="2"><span>{title}</span></div>
    <div class="entry" id="3"><span>{title}</span></div>
    <div class="entry" id="4"><span>{title}</span></div>
</div>
<div class="entry_group">
    <div class="entry" id="5"><span>{title}</span></div>
    <div class="entry" id="6"><span>{title}</span></div>
    <div class="entry" id="7"><span>{title}</span></div>
    <div class="entry" id="8"><span>{title}</span></div>
</div>

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 08 апреля 2011

Вы можете попробовать использовать плагин Modulo Operator , чтобы получить это с любым количеством записей. Примерно так:

{if count == "1"}
    <div class="entry_group">
{/if}
{if '{exp:modulo dividend="{count}" divisor="4"}' == 0}
    </div>
    <div class="entry_group">
{/if}
        <div class="entry" id="{count}"><span>{title}</span></div>
{if count == total_results}
    </div>
{/if}

Плагин предназначен только для EE1, но преобразование плагина из EE1 в EE2 очень просто.

1 голос
/ 02 июля 2012

Я нашел другое, намного более простое решение на форумах ExpressionEngine; в то время как довольно простой, я думаю, что он должен довольно легко достичь желаемой цели: http://expressionengine.com/forums/viewthread/197240/#927740

Суть его заключается в использовании переменной {switch} для необязательной вставки пар закрывающих и открывающих тегов после каждой n групп записей, в зависимости от того, сколько пустых мест вы оставляете в коммутаторе. В вашем случае пример будет примерно таким:

<div class="entry_group">
{exp:channel:entries}
    <div class="entry" id="{switch='1|2|3|4'}"><span>{title}</span></div>
    {switch='|||</div><div class="entry_group">'}
{exp:channel:entries}
</div>

Пробелы между div и class=entry_group не должны вызывать каких-либо проблем, но если это так, вы можете использовать CSS для управления свойствами контейнеров, не помещая в них класс (например, * 1009). * и .entry_list>div .entry{...

0 голосов
/ 08 апреля 2011

Я нашел полу-решение на форумах Expression Engine , но для него требуется ограничение на общее количество записей.

...