День добрый!
Многому научился на этом форуме и сайте, поэтому выкладываю мною найденное решение пагинации, несколько дней ломал голову как же прикрутить модуль, из урока вроде бы все понятно, но что то не шло, надеюсь авторы и админы сайта и форума поймут меня, работа с фреймворком это уровень профессионала, и самоучке в программировании на php, иногда сложно понять изложение материала, поэтому прошу снисходительно отнестись к неточностям определений. Ближе к делу.
Сам модуль пагинатора в прикрепленном архиве, как его установить и подключить, те кто решил это сделать знают,
Контроллер
Код:
public function action_video()
{
//Создаем объект класса, естественно у вас должна быть создана соответствующая модель
$videos = ORM::factory('Video');
//Производим подсчет строк в таблице(спасибо Сергею админу форума)
$total = $videos->reset(FALSE)->count_all();
if ($total == 0)
{
$this->response->body('No videos found');
return;
}
// Формируем объект пагинации
$pagination = Pagination::factory(array(
'group' => 'default',// в этой строке обращаемся к конфигурационному файлу application/config/pagination.php скопированному из директории модуля
'total_items' => $videos->count_all(),
));
//Выбираем из БД необходиимые данные
$videos = $videos
->order_by('code', 'DESC') // DESC или ASC
->offset($pagination->offset)// понимаю для чего но объяснить не могу
->limit($pagination->items_per_page)
->find_all();
// Передаем данные из модели и массив пагинатора в вид(Важно! этот фрагмент кода должен быть после определения всех передаваемых переменных)
$view = View::factory('/blocks/video', array('items' => $videos,'pagination' => $pagination,))
->bind('videos', $videos)
->bind('articles', $articles)
->bind('category', $category);
$this->template->content = $view;
}
Код файла конфигурации
Код:
<?php defined('SYSPATH') or die('No direct script access.');
return array(
// А вот и тот самый непонятный 'group' => 'default' который определялся в контроллере и определяет где ему брать файл вида
'default' => array(
'current_page' => array('source' => 'query_string', 'key' => 'page'), // source: "query_string" or "route"
'total_items' => 0,
'items_per_page' => 6,
'view' => 'pagination/basic',
'auto_hide' => TRUE,
'first_page_in_url' => FALSE,
),
Знакомым способом подключаем пагинатор в виде
Код:
<!-- pagination -->
<?php echo $pagination; ?>
В общем как то так, нет необходимости создавать роуты в бутстрапе, достаточно определить группу в конфигурационном файле, модуль вроде бы как для ко3.2 но у меня на 3.3 работает отлично(когда выложу на хостинг поделюсь ссылкой)
Этот вариант пагинации был реализован на основе материала сайта
http://kohanaframework.su/ форума и сайта
http://cyberapp.ru/2013/01/14/kohana-3- ... m-chast-3/ изложенного по упомянутой ссылке, архив модуля с этого же сайта.
Думаю что ссылка на сторонний ресурс вполне уместна т.к. все кто посещает форум заинтересованны в развитии знаний о кохане, и работе с ней, и чем больше обобщенной информации будет собрано в одном месте тем проще будет работать всем.
Вот такой маленький постик от дилетанта в программировании.
Желаю всем удачи!