[英]Pagination current page incorrect when 'use_page_numbers'
我在我的網站上使用CI分頁庫,現在將$ config ['use_page_numbers']設置為TRUE,當前頁面始終是第一頁。 除此之外,一切正常。
其他設定:
$config['uri_segment'] = 2;
$config['prefix'] = "p";
$route['mypage/p(:num)'] = "citate/index/$1";
這是計算當前頁面的函數(輸出正確)。 當我在首頁上返回1時,在第三頁上返回3,依此類推:
function getPagCurr($offset, $limit){
if( ! $offset) return $page = 1;
else return ($offset/$limit)+1;
}
...但是,它不起作用。
我嘗試手動設置,僅用於測試,$ config ['cur_page'] = 2的值(因此,這意味着第二個鏈接應被視為活動鏈接),但完全沒有更改。
CI版本是最新的。
似乎前綴是這里的問題。 使用我的實際配置,該鏈接將類似於www.site.com/mypage/p2,該鏈接不起作用。 工作鏈接為www.site.com/mypage/p/2/,其中uri_segment = 3,並路由mypage / p /(:num)。 但是,我真的很想擁有第一個鏈接結構,所以這是我的解決方案(因為您必須修改一些系統庫代碼,所以這不是一個好的解決方案):
Pagination.php(第166行開始):
// Set current page to 1 if using page numbers instead of offset
if ($this->use_page_numbers AND $this->cur_page == 0)
{
$this->cur_page = $base_page;
}
..變成:
// Set current page to 1 if using page numbers instead of offset
if ($this->use_page_numbers AND $this->cur_page == 0)
{
$current_page = $CI->uri->segment($this->uri_segment); //get pNUM
$current_page = substr($current_page, 1); //remove prefix
$this->cur_page = $current_page; //set current page
}
...現在可以了!
如果有人有更好的解決方案,請告訴! 謝謝。
是的,您說對了,因為您的細分受眾群獲得了ap(p2),所以它不起作用
為此,您必須修改核心,但是我會說不要修改核心,而只是擴展分頁類並使用以下代碼修改代碼:
添加一個新的類變量
var $use_rsegment = FALSE;
然后在第157行周圍修改create_links()
//add
$_uri_segment = 'segment';
if($this->use_rsegment){
$_uri_segment = 'rsegment';
}
//modify
if ($CI->uri->$_uri_segment($this->uri_segment) != $base_page)
{
$this->cur_page = $CI->uri->$_uri_segment($this->uri_segment);
// Prep the current page - no funny business!
$this->cur_page = (int) $this->cur_page;
}
uri細分是新的路由細分,現在像這樣設置分頁配置
$config['use_rsegment'] = TRUE;
$this->pagination->initialize($config);
因此,您可以在需要時同時使用這兩個選項。 當您將路線設置為true時
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.