Класс Pagination
Класс Pagination CodeIgniter очень прост в использовании и на 100% настраиваем, как динамически, так и через сохранённые настройки.
- Пример
- Настройка Pagination
- Добавление заключительной разметки
- Настройка первой ссылки
- Настройка последней ссылки
- Настройка ссылки "Далее"
- Настройка ссылки "Предыдущая"
- Настройка ссылки "Текущая страница"
- Настройка ссылки "Цифра"
- Скрытие страниц
- Добавление атрибутов к якорям
- Отключение атрибута "rel"
- Справочник по классу
Если вы не знакомы с термином "Pagination", это ссылки, которые позволяют перемещаться между страницами, например так:
« First < 1 2 3 4 5 > Last »
Пример
Вот простой пример, показывающий, как создать Pagination в одном из методов вашего контроллера:
$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-адрес контроллера/функции контроллера, содержащего ваш Pagination. В примере выше он указывает на контроллер под названием "Test" и функцию под названием "page". Имейте в виду, что вы можете изменить маршрутизацию вашего URI, если вам нужна другая структура.
- total_rows Это число представляет общее количество строк в наборе результатов, для которого вы создаёте Pagination. Как правило, это число будет общим числом строк, возвращённых запросом к базе данных.
- per_page Число элементов, которые вы хотите отобразить на странице. В приведённом выше примере вы будете отображать 20 элементов на странице.
Метод create_links() возвращает пустую строку, когда не нужно отображать Pagination.
Установка настроек в файле конфигурации
Если вы предпочитаете не устанавливать настройки с помощью вышеописанного метода, вы можете поместить их в файл конфигурации. Просто создайте новый файл под названием pagination.php, добавьте массив $config в этот файл. Затем сохраните файл в application/config/pagination.php, и он будет использоваться автоматически. Вам НЕ нужно использовать $this->pagination->initialize(), если вы сохранили свои настройки в файле конфигурации.
Настройка Pagination
Ниже приведён список всех настроек, которые вы можете передать в функцию инициализации для настройки отображения.
$config[‘uri_segment’] = 3;
Функция Pagination автоматически определяет, какой сегмент вашего URI содержит номер страницы. Если вам нужно что-то другое, вы можете указать его.
$config[‘num_links’] = 2;
Количество ссылок "цифр", которые вы хотите отобразить до и после выбранного номера страницы. Например, число 2 разместит две цифры по обе стороны, как в примере ссылок в самом верху этой страницы.
$config[‘use_page_numbers’] = TRUE;
По умолчанию сегмент URI будет использовать начальный индекс для элементов, которые вы постраничиваете. Если вы предпочитаете отображать фактический номер страницы, установите это значение в TRUE.
$config[‘page_query_string’] = TRUE;
По умолчанию библиотека Pagination предполагает, что вы используете URI-сегменты и строит ваши ссылки примерно так:
http://example.com/index.php/test/page/20
Если у вас $config['enable_query_strings'] установлено в TRUE, ваши ссылки автоматически будут переписаны с использованием параметров запроса. Этот параметр также можно явно установить. Используя $config['page_query_string'] установленное в TRUE, ссылка Pagination станет:
http://example.com/index.php?c=test&m=page&per_page=20
Обратите внимание, что "per_page" - это параметр запроса по умолчанию, но его можно настроить с помощью $config['query_string_segment'] = 'your_string'
$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.
Добавление заключительной разметки
Если вы хотите заключить всю Pagination в какую-либо разметку, вы можете сделать это с помощью этих двух настроек:
$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;
Добавление атрибутов к якорям
Если вы хотите добавить дополнительный атрибут ко всем ссылкам, созданным классом Pagination, вы можете установить их в виде пар "ключ-значение" в настройке "attributes":
// Produces: class="myclass"
$config['attributes'] = array('class' => 'myclass');
Примечание
Использование старого метода установки классов через "anchor_class" устарело.
Отключение атрибута "rel"
По умолчанию атрибут rel динамически генерируется и добавляется к соответствующим якорям. Если по какой-то причине вы хотите его отключить, вы можете передать boolean FALSE в качестве обычного атрибута
$config['attributes']['rel'] = FALSE;
Справочник по классу
-
class CI_Pagination -
-
initialize([$params = array()]) -
Параметры: - $params (array) – Параметры конфигурации
Возвращает: Экземпляр CI_Pagination (цепочка методов)
Тип возвращаемого значения: CI_Pagination
Инициализирует класс Pagination с вашими предпочтениями.
-
create_links() -
Возвращает: HTML-форматированная навигация по страницам Тип возвращаемого значения: string Возвращает панель «навигации по страницам», содержащую сгенерированные ссылки, или пустую строку, если есть только одна страница.
-
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/pagination.html