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

# CodeIgniter User Guide Version 2.1.3

Search User Guide

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

- 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'] = '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