tp5.0分頁樣式調控

基礎的分頁調用html

    /**
    *  控制器部分代碼
     */
    //實例化模型
    $areasModel=new Areas();
    //分頁數據集
    $listarea=$areasModel->paginate($page);
    //分頁顯示輸出
    $page=$listarea->render();
    //模板賦值
    $this->assign('listarea',$listarea);
    $this->assign('page', $page);
    /**
    *  模板頁面部分代碼
     */
    {$page}//分頁輸出
    {$listarea->total()}//數據總數
    {$listarea->lastPage()}//總頁數
    {$listarea->currentPage()}//當前頁

分頁類修改,寫了三個樣式;ide

    public $rollPage=5;//分頁欄每頁顯示的頁數
    public $showPage=12;//總頁數超過多少條時顯示的首頁末頁
    /**
     * 分頁樣式一:首頁末頁無論什麼時候都顯示
     * 
     * 分頁樣式二:前n頁時不顯示首頁,後n頁時不顯示末頁;n=分頁欄數/2(向下取整)
     */
    //樣式1和樣式2核心代碼
    /**
         * 頁碼按鈕
         * @return string
         */
        protected function getLinks()
        {
            if ($this->simple)
                return '';
            $block = [
                'first'  => null,
                'slider' => null,
                'last'   => null
            ];
            $rollPage = $this->rollPage;//分頁欄每頁顯示的頁數
            $nowPage = floor($rollPage/2);//計算分頁臨時變量
            
            if($this->lastPage <= $rollPage){
                $block['first'] = $this->getUrlRange(1, $this->lastPage);
            }else if($this->currentPage <= $nowPage){
                $block['first'] = $this->getUrlRange(1, $rollPage);
            }else if($this->currentPage >= ($this->lastPage - $nowPage)){
                $block['first'] = $this->getUrlRange($this->lastPage - $rollPage+1, $this->lastPage);
            }else{
                $block['first'] = $this->getUrlRange($this->currentPage - $nowPage, $this->currentPage + $nowPage);
            }
            $html = '';
            if (is_array($block['first'])) {
                $html .= $this->getUrlLinks($block['first']);
            }
            return $html;
        }
    /**
     * 分頁樣式三
     * 按照段分頁,具體的效果能夠本身下載代碼
     * 
     * 例1:1-5,4-8,7-11,...
     * 在第一段時:點擊5時跳到下一段
     * 在第二段時:點擊8時跳到下一段,點擊4時回到上一段
     * 
     * 例2:1-7,6-12,11-17,...
     * 在第二段時:點擊12時跳到下一段點擊6時回到上一段
     * 在第三段時:點擊17時跳到下一段,點擊11時回到上一段
     * 
     */
    //核心代碼
    /**
         * 頁碼按鈕
         * @return string
         */
        protected function getLinks()
        {
            if ($this->simple)
                return '';
            $block = [
                'first'  => null,
                'slider' => null,
                'last'   => null
            ];
            $rollPage = $this->rollPage;//分頁欄每頁顯示的頁數
            $nowPage = floor($rollPage/2);//計算分頁臨時變量
            
            if($this->lastPage <= $rollPage){
                $block['first'] = $this->getUrlRange(1, $this->lastPage);
            }else if($this->currentPage==0 || $this->currentPage<$rollPage){
                $block['first'] = $this->getUrlRange(1, $rollPage);
            }else{
                $n=floor(($this->currentPage+($rollPage-4))/($rollPage-2));
                $start=$n*($rollPage-2)-($rollPage-3);
                $end=$start+$rollPage-1;
                $end=$end>$this->lastPage ? $this->lastPage : $end;
                $block['first'] = $this->getUrlRange($start,$end);
            }
            $html = '';
            if (is_array($block['first'])) {
                $html .= $this->getUrlLinks($block['first']);
            }
            return $html;
        }

樣式一圖:this

樣式二圖:spa

樣式三圖:code

相關文章
相關標籤/搜索