Класс пагинации (вывод списка страниц)
Класс пагинации CodeIgniter очень легко использовать и он является 100% настраиваемым либо динамически либо через хранимые предпочтения.
- Пример
- Настройка пагинации
- Добавление ограждающей разметки
- Настройка по первой ссылки
- Настройка по последней ссылки
- Настройка “Следующей” ссылки
- Настройка “Предыдущей” ссылки
- Настройка “Активной” ссылки
- Настройка “Цифры”
- Скрытие страниц
- Добавление атрибутов к якорю
- Отключение “rel” атрибута
- Настройки класса
Если Вы не знакомы с термином “пагинация”, это относится к ссылкам, которые позволяют переходить от страницы к странице, например:
« Первая < 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() методом как показано выше. Хотя существует около двадцати элементов, которые можно настроить, минимум понадобится три. Вот описание того, что эти элементы представляют:
- base_url Это полный URL к контроллеру класс/функция, содержащему пагинацию. В примере выше, это указывает на контроллер “Test” и функция называется “page”. Имейте в виду, что вы можете изменить маршрут вашего URI если вам нужна другая структура.
- total_rows Это число соответствует общему количеству строк в результирующем наборе, который вы создаете для пагинации. Обычно это число будет содержать количество строк возвращаемых запросом к базе данных, .
- per_page Количество элементов, которые вы намерены показать на странице. В приведенном выше примере, будут показаны 20 элементов на странице.
Метод 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'] = 'ваша_строка'
$config[‘reuse_query_string’] = FALSE;
По умолчанию ваши аргументы строки запроса (ничего общего с другими параметрах строки запроса) будут игнорироваться. Установив этот конфиг в TRUE добавим существующие аргументы строки запроса в URL после имени URI сегмента и перед суффиксом.:
http://example.com/index.php/test/page/20?query=search%term
Это поможет вам смешать нормальные URI сегменты как аргументы строки запроса, до версии 3.0 это не было возможно.
$config[‘prefix’] = ‘’;
Пользовательский префикс добавленый к пути. Значение префикса будет прямо перед смещением сегмента.
$config[‘suffix’] = ‘’;
Пользовательский суффикс добавленый к пути. Значение суфикса будет прямо после смещением сегмента.
$config[‘use_global_url_suffix’] = FALSE;
Когда установлен в TRUE, будет переопределять $config['suffix'] значение вместо того, чтобы установить его на тот, который у вас учтановлен в $config['url_suffix'] в вашем application/config/config.php файле.
Добавление ограждающей разметки
Если вы хотите огродить нумерацию страниц некоторой разметкой, можно сделать это двумя предпочтениями:
$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[‘first_url’] = ‘’;
Альтернативный URL, чтобы использовать для ссылки “первой страницы”.
Настройка по последней ссылки
$config[‘last_link’] = ‘Последняя’;
Текст, который будет показан в “Последней” ссылке справа. Если вы не хотите, чтобы эта ссылка была доступна, установите значение в 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;
Добавление атрибутов к якорю
Если вы хотите добавить дополнительный атрибут, который будет добавлен к каждой ссылке класса пагинации, вы можете установить их в качестве пары ключ/значение в конфиге “attributes”:
// Производит: class="myclass"
$config['attributes'] = array('class' => 'myclass');
Примечание
Использование старого способа настройки классов через “anchor_class” является устаревшим.
Отключение “rel” атрибута
По умолчанию атрибут rel динамически генерируются и добавляются в соответствующие якоря. Если по каким-то причинам вы хотите отключить это, передайте булево FALSE как постоянный атрибут
$config['attributes']['rel'] = FALSE;