]> git.andy128k.dev Git - ipf-legacy-orm.git/commitdiff
Digg Like Paginator
authoravl <alex.litovchenko@gmail.com>
Sat, 1 Nov 2008 20:05:44 +0000 (22:05 +0200)
committeravl <alex.litovchenko@gmail.com>
Sat, 1 Nov 2008 20:05:44 +0000 (22:05 +0200)
ipf/orm/pager/layoutarrows.php

index f8fe16b537faced0455be62a5a7bba6168c566c6..76105e043ffa63dcb49dd9c3deb29736b41ea409 100644 (file)
@@ -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', '&laquo;', true);
-                       $options['page_number'] = $pager->getFirstPage();
-                       $str .= $this->processPage($options);
-               }
-
-               // Previous page
-                       /*
-               $this->addMaskReplacement('page', '&lsaquo;', 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', '&rsaquo;', true);
-               $options['page_number'] = $pager->getNextPage();
-               $str .= $this->processPage($options);
-               */
-
-               // Last page
-               if ($pager->getLastPage()!=$pager->getPage()){
-                       $this->addMaskReplacement('page', '&raquo;', 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);
+                       }
                }
                }