first frontend
[phinde.git] / src / phinde / Html / Pager.php
diff --git a/src/phinde/Html/Pager.php b/src/phinde/Html/Pager.php
new file mode 100644 (file)
index 0000000..a14a53d
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+namespace phinde;
+
+class Html_Pager
+{
+    protected $pager;
+
+    /**
+     * Create a new pager
+     *
+     * @param integer $itemCount   Number of items in total
+     * @param integer $perPage     Number of items on one page
+     * @param integer $currentPage Current page, beginning with 1
+     * @param string  $filename    URL the page number shall be appended
+     */
+    public function __construct($itemCount, $perPage, $currentPage, $filename)
+    {
+        $append = true;
+        if (strpos($filename, '%d') !== false) {
+            $append = false;
+        }
+        //fix non-static factory method error
+        error_reporting(error_reporting() & ~E_STRICT);
+        $this->pager = \Pager::factory(
+            array(
+                'mode'        => 'Sliding',
+                'perPage'     => $perPage,
+                'delta'       => 2,
+                'totalItems'  => $itemCount,
+                'currentPage' => $currentPage,
+                'urlVar'      => 'page',
+                'append'      => $append,
+                'path'        => '',
+                'fileName'    => $filename,
+                'separator'   => '###',
+                'spacesBeforeSeparator' => 0,
+                'spacesAfterSeparator' => 0,
+                'curPageSpanPre' => '',
+                'curPageSpanPost' => '',
+                'firstPagePre' => '',
+                'firstPageText' => 'first',
+                'firstPagePost' => '',
+                'lastPagePre' => '',
+                'lastPageText' => 'last',
+                'lastPagePost' => '',
+                'prevImg' => '« prev',
+                'nextImg' => 'next »',
+            )
+        );
+    }
+
+
+    public function getLinks()
+    {
+        $arLinks = $this->pager->getLinks();
+        $arLinks['pages'] = explode('###', $arLinks['pages']);
+        return $arLinks;
+    }
+
+    public function numPages()
+    {
+        return $this->pager->numPages();
+    }
+}
+
+?>