Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

CodeIgniter User Guide Version 2.1.3


Класс Нумерации страниц (Pagination Class)

Класс нумерации страниц CodeIgniter очень прост для использования, и на 100% настраиваемый, принимая динамически переданные параметры или считывая их из хранимой конфигурации.

Если вам не знаком термин «пагинация», это обозначает ссылки, которые позволяют вам переходить от страницы к странице, например так:

« Первая  < 1 2 3 4 5 >  Последняя »

Пример

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

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

$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;

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

echo $this->pagination->create_links();

Примечание:

Массив $config содержит ваши конфигурационные переменненные. Он передается функции $this->pagination->initialize, как показано выше. Хотя существуют около двадцати конфигурируемых элементов, как минимум вам нужны три, показанные выше. Вот описание представления этих элементов:

Функция create_links() вернет пустую строку, если нумерации страниц нечего показывать.

Сохранение настроек в конфигурационном файле

Если вы предпочитаете не устанавливать настройки, используя показанный выше метод, вы можете поместить их в конфигурационный файл. Просто создайте новый файл pagination.php, добавьте в него массив $config. Затем сохраните файл в application/config/pagination.php и он будет использован автоматически. Вы не должны использовать функцию инициализации $this->pagination->initialize, если вы сохранили ваши настройки в конфигурационном файле.

Настройка нумерации страниц

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

$config['uri_segment'] = 3;

Функция нумерации страниц автоматически определяет, какой сегмент вашего URI содержит номер страницы. Если вам нужно что-то другое, вы можете уточнить это.

$config['num_links'] = 2;

Количество "цифровых" ссылок, которое будет отображаться до и после указанного номера страниц. Например, число 2 означает, что нужно поместить по две ссылки до и после, как в примере в самом верху этой страницы.

$config['use_page_numbers'] = TRUE;

По умолчанию сегменты URI используют стартовый индекс для элементов, для которых вы делаете нумерацию страниц. Если вы предпочитаете показывать актуальный номер страницы, установите этот параметр в TRUE.

$config['page_query_string'] = TRUE;

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

http://example.com/index.php/test/page/20

Если вы включили $config['enable_query_strings'] в TRUE, ваши ссылки будут автоматически переписаны, используя строки запроса. Эта опция также может быть указана явно. Если $config['page_query_string'] установлено в TRUE, ссылки нумерации страниц будут соответствовать.

http://example.com/index.php?c=test&m=page&per_page=20

Помните, что "per_page" по умолчанию передается в строке запроса, однако может быть сконфигурирован, используя $config['query_string_segment'] = 'your_string'

Добавление закрывающей верстки

Если вы хотите обернуть всю нумерацию страниц в некоторую верстку, вы можете сделать это двумя параметрами:

$config['full_tag_open'] = '<p>';

Открывающий тег, располагающийся слева от результата.

$config['full_tag_close'] = '</p>';

Закрывающий тег, располагающийся справа от результата.

Настройка первой ссылки

$config['first_link'] = 'Первая';

Текст, который должен отображаться в ссылке «Первая» слева. Если вы не хотите, чтобы эта ссылка отображалась, установите значение параметра в FALSE.

$config['first_tag_open'] = '<div>';

Открывающий тег для ссылки «Первая» .

$config['first_tag_close'] = '</div>';

Закрывающий тег для ссылки «Первая» .

Настройка последней ссылки

$config['last_link'] = 'Последняя';

Текст, который отборажается в ссылке «Последняя» справа. Если вы не хотите отображать эту ссылку, установите значение этого параметра в FALSE.

$config['last_tag_open'] = '<div>';

Открывающий тег для ссылки «Последняя» .

$config['last_tag_close'] = '</div>';

Закрывающий тег для ссылки «Последняя» .

Настройка ссылки «Далее»

$config['next_link'] = '&gt;';

Текст, который будет отбражаться в ссылке «Далее» («Следующая страница»). Если вы не хотите отображать эту ссылку, установите значение этого параметра в FALSE.

$config['next_tag_open'] = '<div>';

Открывающий тег для ссылки «Далее» .

$config['next_tag_close'] = '</div>';

Закрывающий тег для ссылки «Далее» .

Настройка ссылки «Назад»

$config['prev_link'] = '&lt;';

Текст, который вы хотите показывать в ссылке «Назад» ( «Предыдущая страница», «Ранее» ). Если вы не хотите показывать эту ссылку, установите значение параметра в FALSE.

$config['prev_tag_open'] = '<div>';

Открывающий тег для ссылки «Назад» .

$config['prev_tag_close'] = '</div>';

Закрывающий тег для ссылки «Назад» .

Настройка ссылки на текущую страницу

$config['cur_tag_open'] = '<b>';

Открывающий тег для ссылки на текущую страницу.

$config['cur_tag_close'] = '</b>';

Закрывающий тег для ссылки на текущую страницу.

Настройка ссылки с номером страницы

$config['num_tag_open'] = '<div>';

Открывающий тег.

$config['num_tag_close'] = '</div>';

Закрывающий тег.

Скрытие страниц

Если вы хотите, чтобы не отображались ссылки на конкретные страницы (например, вы хотите сделать «следующая» и «предудыщая»), вы можете подавить их вывод:

$config['display_pages'] = FALSE;

Добавление класса каждой ссылке

Если вы хотите добавить класс каждой сгенерированной классом нумерации страниц ссылке, вы можете установить значение параметра конфигурации "anchor_class" во что пожелаете.

Поделиться


Переведено в компании Аринт.

Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter

Яндекс.Метрика