Реализация постраничной навигации (pagination) в CodeIgniter
Рассмотрим реализацию на примере контроллера фотографий. Предварительно мы задали в настройках количество фотографий на страницу в количестве 3 штук. Для реализации навигации нам потребуется знать общее количество фотографий. Для этого сделаем новую функцию в контроллере CRUD.
function num_rows() {
return $this->db->get($this->table)->num_rows();
}
Доработаем сам контроллер (функцию index) для вывода постраничной навигации.
//Получим стартовую позицию для отбора
if ($this->uri->segment(4) === false) {
$start = 0;
} else {
$start = $this->uri->segment(4);
}
//Получим из настроек количество событий на странице
$CI->load->model('mdl_nastr');
$CI->load->model('mdl_photos');
$kol_photos = $CI->mdl_nastr->get_nastr_by_name('Количество фотографий');
//Вывод страниц
$CI->load->library('pagination');
$config['first_link'] = 'В начало';
$config['last_link'] = 'В конец';
$config['base_url'] = '/admin/photos/index';
$config['total_rows'] = $this->mdl_photos->num_rows();
$config['per_page'] = $kol_photos;
$config['uri_segment'] = 4;
$CI->pagination->initialize($config);
$pages = $CI->pagination->create_links();
$data['pages'] = $pages;
//Сформируем запрос с учетом того с какой записи и сколько записей показывать
$data['list'] = $this->mdl_photos->getlist($start,$kol_photos);
Также необходимо просто добавить в вид photos вывод навигации. Мы передаем навигацию в $data['pages'], соответственно чтобы вывести в файле вида просто добавляем строчку:
<?=$pages;?>
Аналогично реализуем в остальных контроллерах.
Теги:
photos,
config,
pages,
навигации,
start,
pagination,
segment,
количество,
nastr,
просто,
функцию,
Получим,
model,
index,
links,
Сформируем,
create,
initialize,
запрос,
total,
учетом,
записи,
Рассмотрим,
показывать
,
сколько,
соответственно,
реализуем,
Аналогично,
строчку,
добавляем,
файле,
вывести,
чтобы,
навигацию,
записей
Комментарии:
Нету комментариев для вывода...