aboutsummaryrefslogtreecommitdiff
path: root/src/phinde/Html/Pager.php
blob: a14a53d659a994ccd4c039f42ba4b49190a51816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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();
    }
}

?>