Как вывести массив views по частям верно?

На готовую верстку вешаю сайт.
Темизирую views, и возникли вопросы.

Верстка в виде колонок. Я вывожу 9 новостей. Их нужно расположить в 3 строк. А значит по 3 новости в строку.

Чтобы разделить 9 новостей на 3 строки я использую:
<?php foreach ($rows as $id => $row): ?>
<div class="four columns">
    <div class="item">  
        <?php
            $i++;
            print $row;
            if ($i == 3) {break;}
        ?>
    </div>
</div>
<?php endforeach; ?>


К сожалению drupal это не нравится (хоть он и выводит все путем).
Жалуется на Notice: Undefined variable: i в функции include(). Пытался прописать var перед i. Не помогает. Сайт падает. Я так понимаю это api drupal себя так ведет. Что сделать?

Может есть какой-то более человечный способ вывести 9 новостей в 3 строки? Спасибо.
  • Вопрос задан
  • 444 просмотра
Решения вопроса 2
Стоит просто перед циклом инициализировать переменную $i = 0, что поможет избежать notice предупреждения.
Ответ написан
Комментировать
Winsik
@Winsik
сис.админ, недопрограммист :)
до фореач пропишите $i=0 и всё
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
siteogra
@siteogra
Drupal, JS, Meteor
Во views можно такие задачи делать без теммизации с отдельными шаблонами. Если вам надо что-то сгруппировать используйте Global: Custom text по такому принципу
7d03ec4902364c21938ed4f43a5d6ba8.png
У полей которые выводите в глобальном поле ставьте Exclude from display и не будет дублирования.

Например, эта вьюха выводит
2b89cbc24c09407782307c391d33c405.png

Я использую бутстрап, поэтому таблица не подходит надо использовать Format:HTML list. Вам тоже это подойдет лучше, так как можно задавать свои классы:
ada80b69b1da43909ed008bbe8213ffe.png

В крайнем случае можно сделать 3 дисплея в одной вьюхе и в пагинаторе определить шаг в 3 штуки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы