2016-10-11 3 views
1

Auf meinem codeigniter Paginierung Links Ich bin mit Bootstrap-3 +Codeigniter 3.1.0 & Bootstrap Paginierung Weblinks

Wenn ich auf den ersten Link bin versteckt es die < <, die zurück zum Start geht, wenn ich darauf klicken.

1 2 >> 

Frage Wie kann ich die codeigniter Paginierung alle Möglichkeiten machen Anzeigen <<>> ich Always show Previous & Next links using CodeIgniter Pagination Class versucht, aber ist für CI2

$config['base_url'] = base_url('forum/?fid=' . $this->input->get('fid') . $url); 
$config['total_rows'] = $this->thread_model->total_threads($this->input->get('fid')); 
$config['per_page'] = $this->config->item('config_limit_admin'); 
$config['page_query_string'] = TRUE; 

$config["full_tag_open"] = '<ul class="pagination">'; 
$config["full_tag_close"] = '</ul>';  
$config["first_link"] = "&laquo;"; 
$config["first_tag_open"] = "<li>"; 
$config["first_tag_close"] = "</li>"; 
$config["last_link"] = "&raquo;"; 
$config["last_tag_open"] = "<li>"; 
$config["last_tag_close"] = "</li>"; 
$config['next_link'] = '&raquo;'; 
$config['next_tag_open'] = '<li>'; 
$config['next_tag_close'] = '<li>'; 
$config['prev_link'] = '&laquo;'; 
$config['prev_tag_open'] = '<li>'; 
$config['prev_tag_close'] = '<li>'; 
$config['cur_tag_open'] = '<li class="active"><a href="#">'; 
$config['cur_tag_close'] = '</a></li>'; 
$config['num_tag_open'] = '<li>'; 
$config['num_tag_close'] = '</li>'; 

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

$data['pagination'] = $this->pagination->create_links(); 
+1

Gerade in Config ändern beachten Sie, dass Ihre xxx_xxx_close Tags und

  • nicht sein sollte. – TimBrownlaw

  • Antwort

    3

    Ich habe gerade die create_links() der Kernbibliothek auf eine etwas andere Weise überschrieben, um dies zu erreichen. Also alles, was Sie tun müssen, ist, einen Dateinamen My_Pagination.php in application/libraries erstellen und diesen Code setzen dort (-Code kopiert von create_link() Methode aus Kernbibliothek Pagination.php)

    My_Pagination.php Datei (Codeigniter 3.1.0)

    defined('BASEPATH') OR exit('No direct script access allowed'); 
    
    class MY_Pagination extends CI_Pagination { 
    
    public function create_links() { 
    
        if ($this->total_rows == 0 OR $this->per_page == 0) { 
         return ''; 
        } 
    
        // Calculate the total number of pages 
        $num_pages = (int) ceil($this->total_rows/$this->per_page); 
    
        if ($num_pages === 1) { 
         return ''; 
        } 
    
        // Check the user defined number of links. 
        $this->num_links = (int) $this->num_links; 
    
        if ($this->num_links < 0) { 
         show_error('Your number of links must be a non-negative number.'); 
        } 
    
        // Keep any existing query string items. 
        // Note: Has nothing to do with any other query string option. 
        if ($this->reuse_query_string === TRUE) { 
         $get = $this->CI->input->get(); 
    
         // Unset the controll, method, old-school routing options 
         unset($get['c'], $get['m'], $get[$this->query_string_segment]); 
        } else { 
         $get = array(); 
        } 
    
        // Put together our base and first URLs. 
        // Note: DO NOT append to the properties as that would break successive calls 
        $base_url = trim($this->base_url); 
        $first_url = $this->first_url; 
    
        $query_string = ''; 
        $query_string_sep = (strpos($base_url, '?') === FALSE) ? '?' : '&amp;'; 
    
        // Are we using query strings? 
        if ($this->page_query_string === TRUE) { 
         // If a custom first_url hasn't been specified, we'll create one from 
         // the base_url, but without the page item. 
         if ($first_url === '') { 
          $first_url = $base_url; 
    
          // If we saved any GET items earlier, make sure they're appended. 
          if (!empty($get)) { 
           $first_url .= $query_string_sep . http_build_query($get); 
          } 
         } 
    
         // Add the page segment to the end of the query string, where the 
         // page number will be appended. 
         $base_url .= $query_string_sep . http_build_query(array_merge($get, array($this->query_string_segment => ''))); 
        } else { 
         // Standard segment mode. 
         // Generate our saved query string to append later after the page number. 
         if (!empty($get)) { 
          $query_string = $query_string_sep . http_build_query($get); 
          $this->suffix .= $query_string; 
         } 
    
         // Does the base_url have the query string in it? 
         // If we're supposed to save it, remove it so we can append it later. 
         if ($this->reuse_query_string === TRUE && ($base_query_pos = strpos($base_url, '?')) !== FALSE) { 
          $base_url = substr($base_url, 0, $base_query_pos); 
         } 
    
         if ($first_url === '') { 
          $first_url = $base_url . $query_string; 
         } 
    
         $base_url = rtrim($base_url, '/') . '/'; 
        } 
    
        // Determine the current page number. 
        $base_page = ($this->use_page_numbers) ? 1 : 0; 
    
        // Are we using query strings? 
        if ($this->page_query_string === TRUE) { 
         $this->cur_page = $this->CI->input->get($this->query_string_segment); 
        } elseif (empty($this->cur_page)) { 
         // Default to the last segment number if one hasn't been defined. 
         if ($this->uri_segment === 0) { 
          $this->uri_segment = count($this->CI->uri->segment_array()); 
         } 
    
         $this->cur_page = $this->CI->uri->segment($this->uri_segment); 
    
         // Remove any specified prefix/suffix from the segment. 
         if ($this->prefix !== '' OR $this->suffix !== '') { 
          $this->cur_page = str_replace(array($this->prefix, $this->suffix), '', $this->cur_page); 
         } 
        } else { 
         $this->cur_page = (string) $this->cur_page; 
        } 
    
        // If something isn't quite right, back to the default base page. 
        if (!ctype_digit($this->cur_page) OR ($this->use_page_numbers && (int) $this->cur_page === 0)) { 
         $this->cur_page = $base_page; 
        } else { 
         // Make sure we're using integers for comparisons later. 
         $this->cur_page = (int) $this->cur_page; 
        } 
    
        // Is the page number beyond the result range? 
        // If so, we show the last page. 
        if ($this->use_page_numbers) { 
         if ($this->cur_page > $num_pages) { 
          $this->cur_page = $num_pages; 
         } 
        } elseif ($this->cur_page > $this->total_rows) { 
         $this->cur_page = ($num_pages - 1) * $this->per_page; 
        } 
    
        $uri_page_number = $this->cur_page; 
    
        // If we're using offset instead of page numbers, convert it 
        // to a page number, so we can generate the surrounding number links. 
        if (!$this->use_page_numbers) { 
         $this->cur_page = (int) floor(($this->cur_page/$this->per_page) + 1); 
        } 
    
        // Calculate the start and end numbers. These determine 
        // which number to start and end the digit links with. 
        $start = (($this->cur_page - $this->num_links) > 0) ? $this->cur_page - ($this->num_links - 1) : 1; 
        $end = (($this->cur_page + $this->num_links) < $num_pages) ? $this->cur_page + $this->num_links : $num_pages; 
    
        // And here we go... 
        $output = ''; 
    
        // Render the "First" link. 
        if ($this->first_link !== FALSE && $this->cur_page > ($this->num_links + 1 + !$this->num_links)) { 
         // Take the general parameters, and squeeze this pagination-page attr in for JS frameworks. 
         $attributes = sprintf('%s %s="%d"', $this->_attributes, $this->data_page_attr, 1); 
    
         $output .= $this->first_tag_open . '<a href="' . $first_url . '"' . $attributes . $this->_attr_rel('start') . '>' 
           . $this->first_link . '</a>' . $this->first_tag_close; 
        } 
    
        // Render the "Previous" link. 
        //if ($this->prev_link !== FALSE && $this->cur_page !== 1) 
        if ($this->prev_link !== FALSE) {//REMOVED $this->cur_page !== 1 
         $i = ($this->use_page_numbers) ? $uri_page_number - 1 : $uri_page_number - $this->per_page; 
    
         $attributes = sprintf('%s %s="%d"', $this->_attributes, $this->data_page_attr, ($this->cur_page - 1)); 
    
         if ($i === $base_page || $this->cur_page == 1) {//ADDED $this->cur_page == 1 
          // First page 
          $output .= $this->prev_tag_open . '<a href="' . $first_url . '"' . $attributes . $this->_attr_rel('prev') . '>' 
            . $this->prev_link . '</a>' . $this->prev_tag_close; 
         } else { 
          $append = $this->prefix . $i . $this->suffix; 
          $output .= $this->prev_tag_open . '<a href="' . $base_url . $append . '"' . $attributes . $this->_attr_rel('prev') . '>' 
            . $this->prev_link . '</a>' . $this->prev_tag_close; 
         } 
        } 
    
    
        // Render the pages 
        if ($this->display_pages !== FALSE) { 
         // Write the digit links 
         for ($loop = $start - 1; $loop <= $end; $loop++) { 
          $i = ($this->use_page_numbers) ? $loop : ($loop * $this->per_page) - $this->per_page; 
    
          $attributes = sprintf('%s %s="%d"', $this->_attributes, $this->data_page_attr, $loop); 
    
          if ($i >= $base_page) { 
           if ($this->cur_page === $loop) { 
            // Current page 
            $output .= $this->cur_tag_open . $loop . $this->cur_tag_close; 
           } elseif ($i === $base_page) { 
            // First page 
            $output .= $this->num_tag_open . '<a href="' . $first_url . '"' . $attributes . $this->_attr_rel('start') . '>' 
              . $loop . '</a>' . $this->num_tag_close; 
           } else { 
            $append = $this->prefix . $i . $this->suffix; 
            $output .= $this->num_tag_open . '<a href="' . $base_url . $append . '"' . $attributes . '>' 
              . $loop . '</a>' . $this->num_tag_close; 
           } 
          } 
         } 
        } 
    
        // Render the "next" link 
        //if ($this->next_link !== FALSE && $this->cur_page < $num_pages) 
        if ($this->next_link !== FALSE) {//REMOVED $this->cur_page < $num_pages 
         $i = ($this->use_page_numbers) ? $this->cur_page + 1 : $this->cur_page * $this->per_page; 
    
         if($this->cur_page == $num_pages){//WHEN LAST LINK 
          $i = $num_pages; 
         } 
    
         $attributes = sprintf('%s %s="%d"', $this->_attributes, $this->data_page_attr, $this->cur_page + 1); 
    
         $output .= $this->next_tag_open . '<a href="' . $base_url . $this->prefix . $i . $this->suffix . '"' . $attributes 
           . $this->_attr_rel('next') . '>' . $this->next_link . '</a>' . $this->next_tag_close; 
        } 
    
        // Render the "Last" link 
        if ($this->last_link !== FALSE && ($this->cur_page + $this->num_links + !$this->num_links) < $num_pages) { 
         $i = ($this->use_page_numbers) ? $num_pages : ($num_pages * $this->per_page) - $this->per_page; 
    
         $attributes = sprintf('%s %s="%d"', $this->_attributes, $this->data_page_attr, $num_pages); 
    
         $output .= $this->last_tag_open . '<a href="' . $base_url . $this->prefix . $i . $this->suffix . '"' . $attributes . '>' 
           . $this->last_link . '</a>' . $this->last_tag_close; 
        } 
    
    
        $output = preg_replace('#([^:"])//+#', '\\1/', $output); 
    
    
        return $this->full_tag_open . $output . $this->full_tag_close; 
    } 
    
    } 
    

    Nur

    entfernt 2 Zustand
    1. $this->cur_page !== 1 (Dies ist unter // Render des "Zurück" Link KOMMENTAR)
    2. $this->cur_page < $num_pages (Dies ist unter // Render die "next" Link KOMMENTAR)

    Added 2 Zustand

    1. if ($i === $base_page){... diese

    2. hat dieses Bild im Inneren if ($this->next_link !== FALSE) {... Zustand als if ($i === $base_page || $this->cur_page == 1) {... geändert

      if($this->cur_page == $num_pages){ 
           $i = $num_pages; 
          } 
      

    Keine Sie haben außer setzen diese Datei in libraries Verzeichnis zu tun, und jetzt Ihre << und >> Links zeigt immer noch Sie können es als normale Konfiguration

    2

    Nun, werden Sie das ändern müssen create_links der Pagination Klasse. Was ich tun würde, ist es, die Klasse system/libraries/Pagination.php um eine MY_Pagination.php zu erweitern, also überschreiben Sie das Verhalten und Sie können es entsprechend Ihren Vorlieben ändern.

    By the way, die Klasse überprüft, ich glaube, Sie in Linien 563 auf aussehen sollte:

    // Render the "First" link. 
        if ($this->first_link !== FALSE && $this->cur_page > ($this->num_links + 1 + ! $this->num_links)) 
        { 
         // Take the general parameters, and squeeze this pagination-page attr in for JS frameworks. 
         $attributes = sprintf('%s %s="%d"', $this->_attributes, $this->data_page_attr, 1); 
         $output .= $this->first_tag_open.'<a href="'.$first_url.'"'.$attributes.$this->_attr_rel('start').'>' 
          .$this->first_link.'</a>'.$this->first_tag_close; 
        } 
    

    Du musst kümmern sich um die, wenn die Bedingung, um immer den Link zu machen.