2016-10-05 3 views
0

ich meinen Tisch Kopf Links sortierbar und bestellbaren machen wie immer mein per_page nicht zuerstCodeigniter perpage Verbindung nicht angezeigt First In URL Paginierung Links

http://localhost/project-1/forum/category/1/&order=asc?per_page=1

Es sollte wie

zeigen sich zeigen http://localhost/codeigniter/forum/category/1/?per_page=1&order=asc

Frage, wenn ich auf die Seitenumbruchlinks klicke, wenn die Bestellung oder sortiert worden sind, wie kann ich sicherstellen, dass wenn ich auf eine Pagina klicke Link, auch wenn Bestellung/Sortierung immer noch angezeigt wird? per_page first in url.

$url = ''; 

if ($this->input->get('sort')) { 
    $url .= '&sort=' . $this->input->get('sort'); 
} 

if ($this->input->get('order')) { 
    $url .= '&order=' . $this->input->get('order'); 
} 

$config["base_url"] = base_url('forum/category') .'/'. $category_id .'/'. $url; 

-Controller

<?php 

class Forum extends MX_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->model('catalog/forum/forum_model'); 
     $this->load->library('pagination'); 
    } 

    public function category() { 
     $this->document->set_title('Forums'); 

     $category_id = $this->uri->segment(3); 

     if ($this->input->get('sort')) { 
      $sort = $this->input->get('sort'); 
     } else { 
      $sort = 'message'; 
     } 

     if ($this->input->get('order')) { 
      $order = $this->input->get('order'); 
     } else { 
      $order = 'asc'; 
     } 

     $url = ''; 

     if ($this->input->get('per_page')) { 
      $url .= '?per_page=' . $this->input->get('per_page'); 
     } 

     if ($this->input->get('sort')) { 
      $url .= '&sort=' . $this->input->get('sort'); 
     } 

     if ($this->input->get('order')) { 
      $url .= '&order=' . $this->input->get('order'); 
     } 

     $config["base_url"] = base_url('forum/category') .'/'. $category_id .'/'. $url; 
     $config["total_rows"] = $this->forum_model->total_category($category_id); 
     $config["per_page"] = 1; 
     $config['page_query_string'] = TRUE; 
     $config['full_tag_open'] = "<ul class='pagination'>"; 
     $config['full_tag_close'] ="</ul>"; 
     $config['num_tag_open'] = '<li>'; 
     $config['num_tag_close'] = '</li>'; 
     $config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>"; 
     $config['cur_tag_close'] = "<span class='sr-only'></span></a></li>"; 
     $config['next_tag_open'] = "<li>"; 
     $config['next_tagl_close'] = "</li>"; 
     $config['prev_tag_open'] = "<li>"; 
     $config['prev_tagl_close'] = "</li>"; 
     $config['first_tag_open'] = "<li>"; 
     $config['first_tagl_close'] = "</li>"; 
     $config['last_tag_open'] = "<li>"; 
     $config['last_tagl_close'] = "</li>"; 

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

     $start = ($this->input->get('per_page')) ? $this->input->get('per_page') : ''; 

     $filter_data = array(
      'limit' => $config["per_page"], 
      'start' => $start, 
      'category_id' => $category_id, 
      'sort' => $sort, 
      'order' => $this->input->get('order') 
     ); 

     $data['threads'] = array(); 

     $results = $this->forum_model->get_threads_for_forum($filter_data); 

     foreach ($results as $result) { 
      $data['threads'][] = array(
       'thread_id' => $result['thread_id'], 
       'user_id' => $result['user_id'], 
       'username' => $result['username'], 
       'subject' => $result['subject'], 
       'link' => site_url('thread') . '-' . $result['thread_id'], 
       'total' => $this->forum_model->total_threads($result['thread_id']), 
       'date_created' => date('d-m-Y', strtotime($result['date_created'])), 
       'user_link' => site_url('user') . '-' . $result['user_id'] 
      ); 
     } 

     $data['header'] = Modules::run('catalog/common/header/index'); 
     $data['footer'] = Modules::run('catalog/common/footer/index'); 
     $data['menu'] = Modules::run('catalog/common/menu/index'); 
     $data['pagination'] = $this->pagination->create_links(); 
     $data['back'] = site_url('forum'); 
     $data['thread'] = site_url('newthread') . '?fid=' . $category_id; 

     $url = ''; 

     if ($order == 'asc') { 
      $url .= '?order=desc'; 
     } else { 
      $url .= '?order=asc'; 
     } 

     $data['message'] = site_url('forum/category') .'/'. $category_id .'/'. $url; 
     $data['sort'] = $sort; 
     $data['order'] = ''; 

     $this->load->view('default/template/forum/forum_thread_view', $data); 
    } 
} 

Antwort

1

Ihre Standard-Kategorie-ID gesetzt, wenn URL enthält nicht:

if ($this->uri->segment(3) == 'null') { 
    $category_id = 1; //set default for null 
} else { 
    $category_id = $this->uri->segment(3); 
} 

Bearbeiten Sie Ihre config [ 'base_url'] und fügen Sie Satz $ config ['suffix'] wenn $ _GET nichtist 210 leer.

New Paginierung config:

$config["base_url"] = base_url('forum/category'); //no need custom category id 
if (count($_GET) > 0) 
    $config['suffix']='?'.http_build_query($_GET,'',"&");//to encode requested data 
$config["per_page"] = 1; 
$config['page_query_string'] = TRUE; 
$config['full_tag_open'] = "<ul class='pagination'>"; 
$config['full_tag_close'] ="</ul>"; 
$config['num_tag_open'] = '<li>'; 
$config['num_tag_close'] = '</li>'; 
$config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>"; 
$config['cur_tag_close'] = "<span class='sr-only'></span></a></li>"; 
$config['next_tag_open'] = "<li>"; 
$config['next_tagl_close'] = "</li>"; 
$config['prev_tag_open'] = "<li>"; 
$config['prev_tagl_close'] = "</li>"; 
$config['first_tag_open'] = "<li>"; 
$config['first_tagl_close'] = "</li>"; 
$config['last_tag_open'] = "<li>"; 
$config['last_tagl_close'] = "</li>"; 
+0

Jetzt stoppt die Seitennummerierung von der Rückkehr. – user4419336

+0

Danke @ wolfgang1983, ich habe es bearbeitet, bitte überprüfe es jetzt. – AHJeebon

+0

Ich verstehe nicht, wohin ich das setzen soll if (count ($ _ GET)> 0) $ config ['suffix'] = '?' . http_build_query ($ _ GET, '', "&");' – user4419336

1

sehe ich nicht:

$config[‘reuse_query_string’] = TRUE; 

Dieser Mischtyp Urls verwenden können. Dies war vor CI 3.0 nicht möglich.