Просмотров: 935

Codeigniter. Постраничная навигация.

Недавно делал постраничную навигацию в Codeigniter, хочу поделиться кодом, который я для этого использовал.

У меня на странице выводится список ссылок для которых и должна будет использоваться постраничная навигация.

13-11-2013 6-44-55

Это файл контроллера:

$row_count = $this -> short_link_model -> get_count_short_links();
$this->load->model('short_link_model');
$config['base_url'] = base_url().'/admin/links/listl';
$config['total_rows'] = $row_count;
$config['per_page'] = 5;
$config['use_page_numbers'] = TRUE;
$config['uri_segment'] = 4;  // указываем, где в URL номер страниц
$this->pagination->initialize($config);
$data['links'] = $this -> short_link_model ->get_short_links($config['per_page'], $offset);
$data['per_page']=$config['per_page'];
$data['cur_page']=$pagelist;
$data['listl'] = $this->pagination->create_links();
$this->load->view('admin_view',$data);

Файл модели:

function get_short_links ($num, $offset) { //$num – количество строк на страницу, $offset – смещение, при переходе на следующую страницу.
$offset = $num*($offset-1);
$this->db->order_by("link_id", "asc");
$query = $this->db->get('short_link',$num,$offset);
return $query->result_array();               
}
//Считаем общее количество строк, которые нужно будет вывести
function get_count_short_links () {
        $this->db->order_by("link_id", "asc");
        $query = $this->db->get('short_link');                             $rowcount = $query->num_rows();                                    return $rowcount;
        }

Файл вида:

<?php $i=0;  foreach ($links as $item) : ?>
    <tr>
        <td><?php $i++; echo $per_page*($cur_page-1)+$i;?></td>
        <td><a href="<?php echo base_url().$item['short_link'];?>"></td>
        <td><?php echo $item['link_id'];?><?php echo $item['description'];?></td>
    </tr>
                <?php endforeach; ?>
    </table>
    <?php echo $listl; //  Вывод постраничной навигации?>

Уверен, что этот код может сэкономить вам кучу времени. Используйте его при необходимости.