Установка модуля Pagination Kohana 3.2
Дата: 02-05-20121. Качаем модуль по ссылке на GitHub https://github.com/kloopko/kohana-pagination
2. Устанавливаем в папку c модулями /modules/pagination/
3. Копируем файл с конфигом config.php в основную папку конфигов нашего приложения /application/config
У меня он выглядит так:
'default' => array(
'current_page' => array('source' => 'route', 'key' => 'page'), // source: "query_string" or "route"
'total_items' => 0,
'items_per_page' => 5,
'view' => 'pagination/basic',
'auto_hide' => FALSE,
'first_page_in_url' => FALSE,4. Неоходимо в bootsrap.php подключить модуль:
Добавить
Kohana::modules(array(
'auth' => MODPATH.'auth', // Basic authentication
// 'cache' => MODPATH.'cache', // Caching with multiple backends
// 'codebench' => MODPATH.'codebench', // Benchmarking tool
'database' => MODPATH.'database', // Database access
// 'image' => MODPATH.'image', // Image manipulation
'orm' => MODPATH.'orm', // Object Relationship Mapping
// 'unittest' => MODPATH.'unittest', // Unit testing
// 'userguide' => MODPATH.'userguide', // User guide and API documentation
'captcha' => MODPATH.'captcha', //Captcha
'pagination' => MODPATH.'pagination', // Pagination
));4. Переписываем роут где нужно сделать постраничную навигацию:
Route::set('default', '((/(/page)(/)))', array('page'=>'[0-9]+'))
->defaults(array(
'controller' => 'index',
'action' => 'index',
)); 5. В экшине контроллера где выводится постраничная навигация прописываем, что-то вроде:
public function action_index() {
// echo 'Page -> ' . $this->request->param('page');
$count = ORM::factory('note')->count_all();
$pagination = Pagination::factory(array(
'total_items' => $count,
))
->route_params(array(
'controller' => Request::current()->controller(),
'action' => Request::current()->action(),
));
$posts = ORM::factory('note')->order_by('date', 'DESC')
->limit($pagination->items_per_page)
->offset($pagination->offset)
->find_all();
$this->template->content = View::factory('front/v_posts', array(
'posts' => $posts,
'pagination' => $pagination,));
}6. В вид переданы посты и html постраничной навигации. That's all!
Категория: PHP