Класс пагинации (вывод списка страниц) 

    Класс пагинации 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() методом как показано выше. Хотя существует около двадцати элементов, которые можно настроить, минимум понадобится три. Вот описание того, что эти элементы представляют:

    • 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’] = ‘

    ’;

    Открывающий тэг размещенный на левой стороне от результата.

    $config[‘full_tag_close’] = ‘

    ’;

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

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

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

    $config['display_pages'] = FALSE;
    

    Добавление атрибутов к якорю 

    Если вы хотите добавить дополнительный атрибут, который будет добавлен к каждой ссылке класса пагинации, вы можете установить их в качестве пары ключ/значение в конфиге “attributes”:

    // Производит: class="myclass"
    $config['attributes'] = array('class' => 'myclass');
    

    Примечание

    Использование старого способа настройки классов через “anchor_class” является устаревшим.

    Отключение “rel” атрибута 

    По умолчанию атрибут rel динамически генерируются и добавляются в соответствующие якоря. Если по каким-то причинам вы хотите отключить это, передайте булево FALSE как постоянный атрибут

    $config['attributes']['rel'] = FALSE;
    

    Настройки класса 

    class CI_Pagination 
    initialize([$params = array()]) 
    Параметры:
    • $params (массив) – Параметры конфигурации
    Возвращает:

    CI_Pagination экземпляр (метод цепочек)

    Возврощаемый тип:

    CI_Pagination

    Инициализация настроек класса пагинации.

    Возвращает:HTML отформатированная пагинация
    Возврощаемый тип:строка

    Возвращает блок “пагинации”, содержащий сгенерированные ссылки или пустую строку, если там всего одна страница.