Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
51 / 51
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2/*
3 * This file is part of Aplus Framework Pagination Library.
4 *
5 * (c) Natan Felles <natanfelles@gmail.com>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10/**
11 * @var Framework\Pagination\Pager $pager
12 */
13$language = $pager->getLanguage();
14?>
15<nav class="paginate-container" aria-label="Pagination">
16    <div class="pagination">
17
18        <?php if ($pager->getPreviousPage()) : ?>
19            <a class="previous_page" rel="prev" href="<?=
20            $pager->getPreviousPageUrl() ?>" aria-label="<?=
21            $language->render('pagination', 'previous') ?>"><?=
22                $language->render('pagination', 'previous') ?></a>
23        <?php else: ?>
24            <span class="previous_page" aria-disabled="true"><?=
25                $language->render('pagination', 'previous') ?></span>
26        <?php endif ?>
27
28        <?php
29        $page = array_key_first($pager->getPreviousPagesUrls());
30?>
31        <?php if ($page > 1): ?>
32            <a href="<?= $pager->getFirstPageUrl() ?>" aria-label="Page <?= $pager->getFirstPage() ?>" title="<?=
33    $pager->getLanguage()->render('pagination', 'first') ?>">
34                <?= $pager->getFirstPage() ?>
35            </a>
36            <?php if ($page > 2): ?>
37                <a href="<?= $pager->getPageUrl(2) ?>" aria-label="Page 2">
38                    2
39                </a>
40                <?php if ($page > 3): ?>
41                    <span class="gap">…</span>
42                <?php endif ?>
43            <?php endif ?>
44        <?php endif ?>
45
46        <?php foreach ($pager->getPreviousPagesUrls() as $p => $url) : ?>
47            <a href="<?= $url ?>" aria-label="Page <?= $p ?>"><?= $p ?></a>
48        <?php endforeach ?>
49
50        <em aria-current="page"><?= $pager->getCurrentPage() ?></em>
51
52        <?php foreach ($pager->getNextPagesUrls() as $p => $url) : ?>
53            <a href="<?= $url ?>" aria-label="Page <?= $p ?>"><?= $p ?></a>
54        <?php endforeach ?>
55
56        <?php
57$page = array_key_last($pager->getNextPagesUrls());
58$lastPage = $pager->getLastPage();
59?>
60        <?php if ($page >= $pager->getCurrentPage()): ?>
61            <?php if ($page < $lastPage - 2): ?>
62                <span class="gap">…</span>
63            <?php endif ?>
64            <?php if ($page < $lastPage - 1): ?>
65                <a href="<?= $pager->getPageUrl($lastPage - 1) ?>" aria-label="Page <?= $lastPage - 1 ?>">
66                    <?= $lastPage - 1 ?>
67                </a>
68            <?php endif ?>
69            <?php if ($page < $lastPage): ?>
70                <a href="<?= $pager->getLastPageUrl() ?>" aria-label="Page <?= $pager->getLastPage() ?>" title="<?=
71        $pager->getLanguage()->render('pagination', 'last') ?>">
72                    <?= $pager->getLastPage() ?>
73                </a>
74            <?php endif ?>
75        <?php endif ?>
76
77        <?php if ($pager->getNextPage() && $pager->getNextPage() < $pager->getLastPage() + 1) : ?>
78            <a class="next_page" rel="next" href="<?=
79    $pager->getNextPageUrl() ?>" aria-label="<?=
80    $language->render('pagination', 'next') ?>"><?=
81        $language->render('pagination', 'next') ?></a>
82        <?php else: ?>
83            <span class="next_page" aria-disabled="true"><?=
84        $language->render('pagination', 'next') ?></span>
85        <?php endif ?>
86
87    </div>
88</nav>