Пагинация

Комментарии ()

Пагинация, это такая штука, которая позволяет разбить некие данные, которые выводяться на страничке, на несколько страниц

Пример использования пагинации

$pagination = new Pagination();
$pagination->setPage(@$_GET['page']); // передаем номер выбраной страницы
$pagination->setRowsCount(200); // передаем количество елементов
$pages = $pagination->getHtml();
$tpl->setVariable('pages', $pages);

Также, можно задать дополнительные параметры

$pagination->setPageRowsCount(10); // задаем количество елементов на одной странице
$pagination->setWidth(3); // количество страниц по  левую и 
правую сторону относительно активной страницы в панели выбора страниц

Все параметры заданы по умолчанию, единственный важный параметр, который нужно задать, это количество елементов, которые нужно разбить на страницы

$pagination->setRowsCount( { тут количество елементов } ) 

Пример взаимодействия объекта Sql с пагинатором

$pagination = new Pagination();
$pagination->setPage(@$_GET['page']);

$query = "SELECT * FROM articles WHERE `visible`=1";
$res = $sql->select(array('sql' => $query, 'pagination' => &$pagination));

$pages = $pagination->getHtml();
$tpl->setVariable('pages', $pages);

В даном примере объекту Sql передается по ссылке объект пагинатора, который получает общее количество найденых записей и формирует LIMIT для sql-запроса. В даном случае sql-запрос выполняется два раза. Первый раз с целью получения общего количества записей, второй раз с LIMIT'ом


Webit.in.ua 2013