基礎的分頁調用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