Allow usage in a subdir of a host.
[phorkie.git] / src / phorkie / Html / Pager.php
1 <?php
2 namespace phorkie;
3
4 class Html_Pager
5 {
6     protected $pager;
7
8     /**
9      * Create a new pager
10      *
11      * @param integer $itemCount   Number of items in total
12      * @param integer $perPage     Number of items on one page
13      * @param integer $currentPage Current page, beginning with 1
14      * @param string  $filename    URL the page number shall be appended
15      */
16     public function __construct($itemCount, $perPage, $currentPage, $filename)
17     {
18         $append = true;
19         if (strpos($filename, '%d') !== false) {
20             $append = false;
21         }
22         //fix non-static factory method error
23         error_reporting(error_reporting() & ~E_STRICT);
24         $this->pager = \Pager::factory(
25             array(
26                 'mode'        => 'Sliding',
27                 'perPage'     => $perPage,
28                 'delta'       => 2,
29                 'totalItems'  => $itemCount,
30                 'currentPage' => $currentPage,
31                 'urlVar'      => 'page',
32                 'append'      => $append,
33                 'path'        => '',
34                 'fileName'    => $filename,
35                 'separator'   => '###',
36                 'spacesBeforeSeparator' => 0,
37                 'spacesAfterSeparator' => 0,
38                 'curPageSpanPre' => '',
39                 'curPageSpanPost' => '',
40                 'firstPagePre' => '',
41                 'firstPageText' => 'first',
42                 'firstPagePost' => '',
43                 'lastPagePre' => '',
44                 'lastPageText' => 'last',
45                 'lastPagePost' => '',
46                 'prevImg' => '« prev',
47                 'nextImg' => 'next »',
48             )
49         );
50     }
51
52
53     public function getLinks()
54     {
55         $arLinks = $this->pager->getLinks();
56         $arLinks['pages'] = explode('###', $arLinks['pages']);
57         return $arLinks;
58     }
59
60     public function numPages()
61     {
62         return $this->pager->numPages();
63     }
64 }
65
66 ?>