2015-05-30 4 views
0

Я использую версию codeigniter 2.2.x. В основном у меня есть несколько сообщений в моей базе данных, и я показываю 2 страницы. Поскольку все вы знаете, что разбиение на страницы отображает от 1 до общего количества страниц, и, щелкнув, скажем, 3, url должен быть чем-то вроде blog/pages/3, но мой идет до 4, 4 идет до 6, 5 идет до 8 и так далее , Отношение похоже; если число пагинации является х, и один показывает на URL есть у, у = 2 * х-2 ... Вот мои настройки конфигурации (контроллер):Кодиментарные номера страниц и URL показаны разные номера

function index() 
{ 
    $this->load->Model('sayfalama_model', 'Model'); 

    $this->load->library('pagination'); 

    $data['sayfalama_linkleri'] = $this->sayfalama_linkleri($this->Model->yazilar_adet()); 

    $data['yazilar'] = $this->Model->yazilar($this->uri->segment(3,0),2); 
    $data['title'] = 'Blog Arşivi'; 

    $this->load->view('templates/header', $data); 
    $this->load->view('templates/menu', $data); 
    $this->load->view('blog/index', $data); 
    $this->load->view('templates/footer', $data); 
} 

function sayfalama_linkleri($toplam) 
{ 
    $config = array(
     'base_url'   => site_url('blog/sayfa'), 
     'first_url'   => site_url('blog/sayfa/1'), 
     'total_rows'  => $toplam, 
     'per_page'   => 2, 
     'page_query_string' => FALSE, 
     'use_page_numbers' => FALSE, 
     'num_links'   => 2, 
     'uri_segment'  => 3, 
     'full_tag_open'  => '<ul class="pagination pull-right">', 
     'full_tag_close' => '</ul>', 
     'first_link'  => 'İlk Sayfa', 
     'first_tag_open' => '<li>', 
     'first_tag_close' => '</li>', 
     'last_link'   => 'Son Sayfa', 
     'last_tag_open'  => '<li>', 
     'last_tag_close' => '</li>', 
     'next_link'   => '&raquo;', 
     'next_tag_open'  => '<li>', 
     'next_tag_close' => '</li>', 
     'prev_link'   => '&laquo;', 
     'prev_tag_open'  => '<li>', 
     'prev_tag_close' => '</li>', 
     'cur_tag_open'  => '<li><span class="current">', 
     'cur_tag_close'  => '</span></li>', 
     'num_tag_open'  => '<li>', 
     'num_tag_close'  => '</li>' 

    ); 

    $this->pagination->initialize($config); 

    return $this->pagination->create_links(); 
} 

и это моя модель:

class Sayfalama_model extends CI_Model{ 



function yazilar($baslangic, $limit) 
{ 
    $sql = "SELECT * FROM news ORDER BY id ASC LIMIT $baslangic,$limit"; 
    $query = $this->db->query($sql); 

    if($query->num_rows() > 0) 
    { 
     return $query->result_array(); 
    } 
    else 
    { 
     return FALSE; 
    } 
} 

function yazilar_adet() 
{ 
    $sql = "SELECT COUNT(*) as adet FROM news"; 
    $query = $this->db->query($sql); 

    return (int)$query->row()->adet; 
} 

} 

На всякий случай, поделитесь видом, тоже.

<?php if($yazilar) : ?> 
    <?php foreach ($yazilar as $dizi): ?> 

     <?php 
     $kisa_metin = mb_substr($dizi['text'],0,85); 
     echo' 
     <div class="col-md-8"> 
     <div class="panel panel-info"> 
      <div class="panel-heading"> 
       <h3 class="panel-title">'.$dizi['title'].'</h3> 
      </div> 
      <div class="panel-body"> 
        '.$kisa_metin.'...<br><small class="pull-right"><a href="'.base_url().'blog/'.$dizi['slug'].'"> Devamını Oku...</a></small> 
      </div> 
     </div> 
     </div> <br clear="both">'; ?> 
     <?php endforeach ?> 
      <div class="row"> 
        <?php echo $sayfalama_linkleri; ?> 
      </div> 
    <?php endif; ?> 

Примечание: Когда я изменяю «use_page_numbers'to правда, номера страниц являются правильными, но я теряю некоторые из моих данных. Некоторые из сообщений не отображаются. Помогите человеку, пожалуйста. Спасибо всем.

ответ

0

Я попробовал и нашел решение. Это оказалось довольно легко. Я изменил _use_page_numbers_ на true и вместо $ this-> uri-> segment (3,0) Я написал ($ this-> uri-> segment (3,0) * 2) -2. Это получилось без проблем. Обратите внимание, что для страниц 1 и 2 нам нужно использовать if, если else и когда $ this-> uri-> segment (3,0) меньше 2 $, этот-> uri-> сегмент (3,0) будет остаются такими же. И нам нужно будет настроить все, в зависимости от сообщений на странице, если это не похоже на 2 в отличие от моего случая.

Смежные вопросы