Войти

Codeigniter. Делаем пагинацию на сайте

02.03.2013 08:51
Pagination

В этой статье буду разбивать информацию из БД на страницы (пагинация). Пагинация это набор ссылок позволяющих перемещаться по страницам. Для этого в CodeIgniter есть класс – Pagination. Он достаточно прост в настройке. Итак приступим.

Сначала подгружаем библиотеку пагинации:

$this->load->library('pagination');

Далее указываем полный путь к классу контроллера/функции, содержащую номер страницы:

$config['base_url'] = 'http://blog.alenin.info/index.php/рblog/index';

Далее рассчитываем число страниц, возвращаемых запросом к базе данных:

$config['total_rows'] = $this->db->count_all('article');

Указываем количество статей, которые будут одновременно показываться на странице:

$config['per_page'] = 5;

Начиная с версии CodeIgniter 2.1.0 в урле можно показывать актуальный номер страницы. Для этого есть параметр: use_page_numbers

$config['use_page_numbers'] = TRUE;

Далее добавляем элементы разметки:

$config['full_tag_open'] = '<p>'; /*элементы разметки*/
$config['full_tag_close'] = '</p>'

Далее инициализируем переменную $config:

$this->pagination->initialize($config);

Теперь выводим нашу пагинацию в отображении. Для того что бы потом в стилях настроить нормальный вил пагинации, я создал div id="pagination". В него поместил код:

<?=$this->pagination->create_links();?>

Проверяем результат – листалка страниц готова.

comments powered by Disqus
  BENCHMARKS  
Loading Time: Base Classes  0.0033
Controller Execution Time ( Blog / Show )  0.0668
Total Execution Time  0.0702
  GET DATA  
No GET data exists
  MEMORY USAGE  
2,208,984 bytes
  POST DATA  
No POST data exists
  URI STRING  
blog/show/12
  CLASS/METHOD  
blog/show
  DATABASE:  blogAlenin (Blog:$db)   QUERIES: 3 (0.0007 seconds)  (Hide)
0.0002   SELECT *
FROM `article`
WHERE `id` = '12' 
0.0002   SELECT *
FROM `article`
WHERE `id` = '12' 
0.0003   SELECT *
FROM `categories`
ORDER BY `nameAS
  HTTP HEADERS  (Show)
  CONFIG VARIABLES  (Show)