#content-management-system #expressionengine
#система управления контентом #expressionengine
Вопрос:
Краткий вопрос: как я могу разделить все записи из данного канала на группы по 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>
Заранее спасибо!
Ответ №1:
Вы можете попробовать использовать плагин 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. Спасибо @D-Rock! Кажется, кто-то уже конвертировал плагин для EE2: Ссылка для скачивания
Ответ №2:
Я нашел другое, гораздо более простое решение на форумах ExpressionEngine; хотя оно и довольно простое, я думаю, что оно должно довольно легко достичь желаемой цели: http://expressionengine.com/forums/viewthread/197240/#927740
Суть этого заключается в использовании переменной {switch} для необязательной вставки закрывающих и открывающих пар тегов после каждой n группы записей, в зависимости от того, сколько пустых мест вы оставляете в switch. В вашем случае пример был бы примерно таким:
<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 для управления свойствами контейнеров без необходимости помещать в них класс (например, .entry_list>div{...
и .entry_list>div .entry{...
Ответ №3:
Я нашел полурешение на форумах Expression Engine, но для этого требуется ограничение на общее количество записей.