クラス Zend_Pagination
{
Private $_navigationItemCount = 6 //ナビゲーション バーにはナビゲーション ページの総数が表示されます
;
Private $_pageSize = null //ページごとのアイテム数
;
private $_align = "right" // ナビゲーションバーの表示位置
;
Private $_itemCount = null //アイテムの総数
;
Private $_pageCount = null //総ページ数
;
Private $_currentPage = null //現在のページ
;
private $_front = null //フロントエンドコントローラー
;
Private $_PageParaName = "ページ" // ページパラメータ名
;
Private $_firstPageString = "|<<" //ナビゲーションバーの最初のページに表示される文字
Private $_nextPageString = ">>" //ナビゲーションバーの前のページに表示される文字
;
Private $_previousPageString = "<<" //ナビゲーションバーの次のページに表示される文字
;
Private $_lastPageString = ">>|" //ナビゲーションバーの最後のページに表示される文字
;
Private $_splitString = " | " //ページ番号間の区切り文字
;
パブリック関数 __construct($itemCount, $pageSize)
{
If (!is_numeric($itemCount) || (!is_numeric($pageSize))) {
新しい例外をスローします("ページネーション エラー: 数値ではありません");
}
$this->_itemCount = $itemCount;
$this->_pageSize = $pageSize;
$this->_front = Zend_Controller_Front::getInstance();
$ this-&gt;
$page = $this->_front->getRequest()->getParam($this->_PageParaName);
If (empty($page) || (!is_numeric($page))) {
// 空か数値ではない場合、現在のページを 1 に設定します
$this->_currentPage = 1;
} else {
if ($page
$page = 1;
}
If ($page > $this->_pageCount) {
$page = $this->_pageCount;
}
$this->_currentPage = $page;
}
}
パブリック関数 getCurrentPage()
{
return $this->_currentPage;
}
パブリック関数 getNavigation()
{
$navigation = '
';
// 現在のページはどの列にありますか?
$pageCote = ceil($this->_currentPage / ($this->_navigationItemCount - 1)) - 1;
//合計ページング列
$pageCoteCount = ceil($this->_pageCount / ($this->_navigationItemCount - 1));
// ページングバーの開始ページ
$pageStart = $pageCote * ($this->_navigationItemCount -1) + 1;
$pageEnd = $pageStart + $this->_navigationItemCount - 1; $pageEnd = $pageStart + $this->_navigationItemCount - 1;
If($this->_pageCount < $pageEnd) {
$pageEnd = $this->_pageCount;
}
$navigation .= "合計: {$this->_itemCount} アイテム 合計 {$this->_pageCount} ページ n ";
if($ pagecote&gt; 0){
$navigation .= '
$this->_firstPageString
}
If($this->_currentPage != 1) { //前のページへのナビゲーション
$navigation .= '
$this->_previousPageString
}その他{
$navigation .= $this->_previousPageString .
}
($ pagestart&lt; = $ pageend)
{
If ($pageStart == $this->_currentPage) {
$navigation .= "
$pageStart" .
} else {
$navigation .= '
. $this->createHref($this->_currentPage+1)
. " \"="">$this->_nextPageString ";
}else{
$navigation .= $this->_nextPageString;
}
if ($pageCote < $pageCoteCount-1) { //未页导航
$navigation .= '
$this->_lastPageString ";
}
$navigation .= ' 到
';
$navigation .= " 页
";
$navigation を返します;
}
パブリック関数 getNavigationItemCount()
{
return $this->_navigationItemCount;
}
パブリック関数 setNavigationItemCoun($navigationCount)
{
if(is_numeric($navigationCount)) {
$this->_navigationItemCount = $navigationCount;
}
}
パブリック関数 setFirstPageString($firstPageString)
{
$this->_firstPageString = $firstPageString;
}
パブリック関数 setPreviousPageString($previousPageString)
{
$this->_previousPageString = $previousPageString;
}
パブリック関数 setNextPageString($nextPageString)
{
$this->_nextPageString = $nextPageString;
}
パブリック関数 setLastPageString($lastPageString)
{
$this->_lastPageString = $lastPageString;
}
パブリック関数 setAlign($align)
{
$align = strto lower($align);
if ($align == "中心") {
$this->_align = "中心";
elseif ($align == "右") {
$this->_align = "右";
} その他 {
$this->_align = "左";
}
}
パブリック関数 setPageParamName($pageParamName)
{
$this->_PageParaName = $pageParamName;
}
パブリック関数 getPageParamName()
{
$this->_PageParaName を返す;
}
プライベート関数 createHref($targetPage = null)
{
$params = $this->_front->getRequest()->getParams();
$module = $params["モジュール"];
$controller = $params["コントローラー"];
$action = $params["アクション"];
$targetUrl = $this->_front->getBaseUrl()
。 "/$モジュール/$コントローラー/$アクション";
foreach ($params as $key => $value)
{
if($key != "コントローラー" && $key != "モジュール"
&& $key != "アクション" && $key != $this->_PageParaName) {
$targetUrl .= "/$key/$value";
}
}
If (isset($targetPage)) { //対象ページを指定
$targetUrl .= "/$this->_PageParaName/$targetPage";
} else {
$targetUrl .= "/$this->_PageParaName/";
}
return $targetUrl;
}
}