先吐槽一下ThinkPHP3.1版的分頁樣式,雖然看起來也很簡單大方,但是所有的頁碼全是使用簡單的數字,之間的空隙比較小,不大容易點,還有那個“前5頁”和“後5頁”顯得有點多余,因為點擊當前顯示第一頁的“上一頁”按鈕會自然出來前5頁。3.1的分頁效果是這個樣子滴:
針對以上種種不太理想的情況,又加上最近學習了ThinkPHP5,在ThinkPHP5中提供了對BootStrap分頁樣式的完美支持,在thinkphp5中只要引入了BootStrap.css文件,在使用Controller中使用分頁函數後,前台自然就會按照BootStrap的樣式來顯示,效果是這個樣子滴:
而我開發頂求網的時候ThinkPHP5還沒出來,使用的是3.1版本,那麼在3.1版中如何才能使用BootStrap的分頁組件呢?以下是解決辦法:
派生thinkphp的原生page.class.php類
為了不影響核心文件(違反設計模式種的對修改封閉原則),我派生了一個子類ListPage,該子類代碼如下:
import('ORG.Util.Page');// 導入分頁類 class ListPage extends Page {//針對本系統User控制器特點重寫Page類中相關函數 /** * 分頁顯示輸出 * @access public */ protected $config = array('header'=>'條記錄','prev'=>'<','next'=>'>', 'first'=>'<<','last'=>'>>', 'theme'=>'%first% %upPage% %linkPage% %downPage% %end%'); ……
可以看到,首先導入核心類所處的文件,然後就可以大膽的派生了,而這裡只列出了核心代碼。我們只需要修改page類中的Config變量就可以了,在子類中重寫該變量為上面的形式,然後再所有Action(Controller)中使用該子類來建立分頁對象即:
$Page=new ListPage($count,5);
這樣就可以使用我們上面的設置了,好了,搞定,新的分頁顯示效果如下:
本文首發於頂求網,轉載請注明來源