-
- class PageModel {
- /**
- * ページング配列を取得します
- * @paramunknown $page 現在のページ数
- * @paramunknown $goodsCount 商品の総数
- * @paramunknown $pageLength 各ページに表示されるページ数
- */
- public static function getPageArr($page, $goodsCount, $pageCountLength, $pageLength) {
- //総ページ数
- $allPageCount = ceil($ GoodsCount / $pageLength);
- //ページが常にその長さより短い場合、ページの長さを総ページ数に設定します
- if ($allPageCount $allPageCount = ceil($goodsCount / $pageLength);
- }
- //総ページ数を1ページに表示します
- if ($allPageCount for ($i = 0; $i $arr[] = array( 'page' => $i + 1);
- }
- return $arr; }
- //前後の長さ
- $halfLength = Floor($pageCountLength / 2) ;
- //小さすぎるので元の位置に置きます
- if ($page <= $halfLength) {
- $arr = array();
- for ($i = 0; $i < $pageCountLength; $i ++) {
- $arr[] = array ('page' => $i + 1);
- return $arr;
- // 大きすぎる場合はエッジのみそれを超えた場合は端のみを取得します
- if ($page > $allPageCount - Floor ($pageCountLength / 2)) {
- for ($i = -$pageCountLength; $i $arr[] = array('page' => $allPageCount + $i + 1)
- }
- return $arr }
- // 真ん中の数字を取り出します
- for ($i = -$halfLength; $i $arr[] = array('page' => $page + $i); $arr;
- }
- }
-
-
- コードをコピー
-
-
-
2. PHP ページング クラス コード
コード:
class Helper_Page{ /**メッセージの総数*/ var $infoCount /**総ページ数*/ var $pageCount; ; - /**ページごとに表示されるアイテムの数*/
- var $items;
- /**現在のページ番号*/
- var $startPos; */
- var $nextPageNo;
- /**クエリの開始位置*/
- var $prevPageNo;
function Helper_Page($infoCount, $items, $pageNo)
- {
- $this-> ;infoCount = $infoCount;
- $this->items = $items;
- $this->pageCount = $this->GetPageCount(); ;AdjustPageNo();
- $this->startPos = $this->GetStartPos();
- 関数 AdjustPageNo()
- {
- if($this->pageNo == '' || $this-> ;pageNo < 1)
- $this->pageNo = 1;
- if ($this->pageNo > $this->pageCount)
- $this->pageNo = $this->pageCount; }
- /**次のページ*/
- function GoToNextPage()
- {
- $nextPageNo = $this->pageNo + 1;
- if ($nextPageNo > $this->pageCount)
- {
- $this- >nextPageNo = $this->pageCount;
- return false;
- $this->nextPageNo = $nextPageNo;
- }
- /**前のページ*/
- function GotoPrevPage()
- {
- $prevPageNo = $this->prevPageNo - 1;
- if ($prevPageNo $this->prevPageNo = 1;
- $this->prevPageNo = $prevPageNo ;
- true を返す
- }
- 関数 GetPageCount()
- {
- return ceil($this->infoCount / $this->items)
- }
- function GetStartPos()
- {
- return ($this->ページ番号 - 1) * $this->items
- }
- }
-
-
-
- コードをコピー
-
-
-
-
-
-
-
-
-
-
-
-
|