From: avl Date: Sat, 1 Nov 2008 20:05:44 +0000 (+0200) Subject: Digg Like Paginator X-Git-Tag: 0.6~166 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=af7dbf29cef1ba68458fc869f67aa19c4665fb6b;p=ipf-legacy-orm.git Digg Like Paginator --- diff --git a/ipf/orm/pager/layoutarrows.php b/ipf/orm/pager/layoutarrows.php index f8fe16b..76105e0 100644 --- a/ipf/orm/pager/layoutarrows.php +++ b/ipf/orm/pager/layoutarrows.php @@ -8,37 +8,40 @@ class IPF_ORM_Pager_LayoutArrows extends IPF_ORM_Pager_Layout $str = ''; if ($pager->getFirstPage()!=$pager->getLastPage()){ - // First page - if ($pager->getFirstPage()!=$pager->getPage()){ - $this->addMaskReplacement('page', '«', true); - $options['page_number'] = $pager->getFirstPage(); - $str .= $this->processPage($options); - } - - // Previous page - /* - $this->addMaskReplacement('page', '‹', true); - $options['page_number'] = $pager->getPreviousPage(); - $str .= $this->processPage($options); - */ - // Pages listing $this->removeMaskReplacement('page'); - $str .= parent::display($options, true); + if (($pager->getPage()-2)>$pager->getFirstPage()){ + + if (($pager->getPage()-2)>$pager->getFirstPage()){ + $options['page_number'] = $pager->getFirstPage(); + $str .= $this->processPage($options); + } + if (($pager->getPage()-3)>$pager->getFirstPage()){ + $options['page_number'] = $pager->getFirstPage()+1; + $str .= $this->processPage($options); + } + if (($pager->getPage()-4)>$pager->getFirstPage()){ + $str .= ' ... '; + } + } - // Next page - /* - $this->addMaskReplacement('page', '›', true); - $options['page_number'] = $pager->getNextPage(); - $str .= $this->processPage($options); - */ - - // Last page - if ($pager->getLastPage()!=$pager->getPage()){ - $this->addMaskReplacement('page', '»', true); - $options['page_number'] = $pager->getLastPage(); - $str .= $this->processPage($options); + // Pages listing + $str .= parent::display(&$options, true); + $last_range = $options['page_number']; + if (($last_range)<$pager->getLastPage()){ + + if (($last_range+2)<$pager->getLastPage()){ + $str .= ' ... '; + } + if (($last_range+1)<$pager->getLastPage()){ + $options['page_number'] = $pager->getLastPage()-1; + $str .= $this->processPage($options); + } + if (($last_range)<$pager->getLastPage()){ + $options['page_number'] = $pager->getLastPage(); + $str .= $this->processPage($options); + } } }