Как я могу добавить разбивку на страницы, что не получается из БД? Например: у меня есть число, которое 20 раз выводит некоторые строки, как я могу его разбивать на страницы. Я пытаюсь создать paginator, и он отображает правильное количество страниц, но на каждой странице я вижу весь контент.
Код цикла:
for ($i = 0; $i < 5; $i++) {
$day = mktime(0, 0, 0, date('m'), date('d') - $i);
$elems = ContentItem::dayNews($day);
$test[] = $elems;
if (count($elems)) {
$date = Y::date_print($day, 'd-m-Y');
$arr = explode('-', $date);
?>
<div class="news_dhead">
<?= Y::isToday($day) ? 'Today, ' : '' ?>
<?= Y::isYesterday($day) ? 'Yesterday, ' : '' ?>
<? echo $arr[0] . ' ' . Y::months($arr[1]) . ' ' . $arr[2] ?>
</div>
<div class="news_dcoll">
<?
foreach ($elems as $key => $elem) {
?>
<div class="ib news_delem">
<? //echo $key;?>
<div class="news_ddate"><?= Y::date_print($elem->cdate, 'H.i') ?></div>
<a href="<?= $elem->urlNews ?>" class="tdn"><?= $elem->title ?></a>
</div>
<?
}
?></div><?
}
}
Итак, как вы можете видеть, каждая строка представляет собой список данных, которые получают из db. PS. Петля пишите другому человеку.
Виджеты Yii используют поставщика данных для отображения данных. Существуют разные поставщики данных:
Вы можете использовать CDataProvider
или CArrayDataProvider
в случаях, когда у вас нет данных db и передайте их через ваш виджет (или используйте его в любом месте)