Класс Pagination (нумерация страниц)
Класс Pagination очень прост в использовании, и на 100% настраивается, как динамически, так и через сохраненные настройки.
Если вы не знакомы с термином "pagination", это относится к ссылкам, с которыми можно перемещаться от страницы к странице, вроде этого:
« First < 1 2 3 4 5 > Last »
Пример
Вот простой пример, показывающий как создать нумерацию страниц в функции одного из ваших контроллеров:
$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, как показано выше. Хотя есть около 20 элементов, которые вы можете настраивать, показан необходимый минимум из трех. Вот описание того, что они из себя представляют:
- base_url Это полный URL к классу/функции контроллера, содержащему вашу нумерацию. В примере выше, это указывает на контроллер, называемый "Test" и на функцию "page". Помните, вы можете переписать маршрутизацию вашего URI, если вам нужна другая структура.
- total_rows Это число, представляющее максимальное количество строк в результирующем наборе, для нумерации страниц. Обычно это число общего количества строк в таблице, возвращаемое запросом.
- per_page Количество элементов, отображаемых на странице. В примере выше, вы показываете 20 элементов на странице.
Функция create_links() возвращает пустую строку, если в нумерации страниц нет необходимости (total_rows < per_page) .
Установка параметров в файле конфигурации
Если вы не хотите устанавливать параметры, как в примере выше, вы можете поместить их в файл конфигурации. Просто создайте новый файл с названием pagination.php и добавьте в него массив $config. Потом сохраните файл в config/pagination.php, и он будет использован автоматически. Вы НЕ должны использовать функцию $this->pagination->initialize, если вы сохранили ваши параметры в конфигурационном файле.
Настройка нумерации страниц
Далее следует список со всеми настройками, которые вы можете передать инициирующей функции для настройки внешнего вида.
$config['uri_segment'] = 3;
Функция нумерации страниц автоматически определяет, какой сегмент вашего URI содержит номер страницы. Также вы можете явно указать его.
$config['num_links'] = 2;
Количество ссылок с цифрами, которое должно отображаться до и после номера выбранной страницы. Например, цифра 2 — разместит две ссылки с каждой стороны, как в примере вверху этой страницы.
$config['page_query_string'] = TRUE
По умолчанию, библиотека нумерации страниц подразумевает, что вы используете сегменты URI, и делает для ваших ссылок что-то вроде
http://example.com/index.php/test/page/20
Если настройка $config['enable_query_strings'] установлена в TRUE, ваши ссылки будут автоматически переписаны с использованием Query Strings. Эта опция может быть также установлена явно. Если установлено $config['page_query_string'] = TRUE, ссылки пагинации станут такими:
http://example.com/index.php?c=test&m=page&per_page=20
Обратите внимание, что "per_page" — это переданная по умолчанию строка запроса, которую можно конфигурировать, используя $config['query_string_segment'] = 'ваша_строка'
Добавление разметки
Если вы хотите изменить разметку для нумерации страниц, используйте эти два параметра:
$config['full_tag_open'] = '<p>';
Открывающий тег размещается с левой стороны от всего вывода.
$config['full_tag_close'] = '</p>';
Закрывающий тег размещается справа от всего вывода.
Настройка ссылки "Начало"
$config['first_link'] = 'First';
Текст, который будет показан в ссылке "Начало", слева. Если вы не хотите, чтобы эта ссылка отображалась, установите значение параметра в FALSE.
$config['first_tag_open'] = '<div>';
Открывающий тег для ссылки "Начало".
$config['first_tag_close'] = '</div>';
Закрывающий тег для ссылки "Начало".
Настройка ссылки "Конец"
$config['last_link'] = 'Last';
Текст, который будет показан в ссылке "Конец". Если вы не хотите, чтобы эта ссылка отображалась, установите значение параметра в FALSE.
$config['last_tag_open'] = '<div>';
Открывающий тег для ссылки "Конец".
$config['last_tag_close'] = '</div>';
Закрывающий тег для ссылки "Конец".
Настройка ссылки "Следующий"
$config['next_link'] = '>';
Текст, который будет показан в ссылке "Следующий". Если вы не хотите, чтобы эта ссылка отображалась, установите значение параметра в FALSE.
$config['next_tag_open'] = '<div>';
Открывающий тег для ссылки "Следующий".
$config['next_tag_close'] = '</div>';
Закрывающий тег для ссылки "Следующий".
Настройка ссылки "Предыдущий"
$config['prev_link'] = '<';
Текст, который будет показан в ссылке "Предыдущий". Если вы не хотите, чтобы эта ссылка отображалась, установите значение параметра в 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;
Добавление класса каждой ссылке
Если вы хотите добавить атрибут класса для каждой ссылки, отображаемой классом Pagination, вы можете использовать элемент конфигурации "anchor_class" .