Fixed pagination when no pages should be shown

This commit is contained in:
Marcin Kurczewski 2013-10-13 22:09:52 +02:00
parent b5581c5822
commit 4d260b6fe5

View file

@ -31,6 +31,18 @@ if (!function_exists('pageUrl'))
} }
?> ?>
<?php
$pagesVisible = [];
$pagesVisible []= 1;
$pagesVisible []= $this->context->transport->pageCount;
$delta = 3;
$pagesVisible = array_merge($pagesVisible, range($this->context->transport->page - $delta, $this->context->transport->page + $delta));
$pagesVisible = array_filter($pagesVisible, function($x) { return $x >= 1 and $x <= $this->context->transport->pageCount; });
$pagesVisible = array_unique($pagesVisible);
sort($pagesVisible, SORT_NUMERIC);
?>
<?php if (!empty($pagesVisible)): ?>
<nav class="paginator-wrapper"> <nav class="paginator-wrapper">
<ul class="paginator"> <ul class="paginator">
<?php if ($this->context->transport->page > 1): ?> <?php if ($this->context->transport->page > 1): ?>
@ -43,17 +55,6 @@ if (!function_exists('pageUrl'))
</a> </a>
</li> </li>
<?php
$pagesVisible = [];
$pagesVisible []= 1;
$pagesVisible []= $this->context->transport->pageCount;
$delta = 3;
$pagesVisible = array_merge($pagesVisible, range($this->context->transport->page - $delta, $this->context->transport->page + $delta));
$pagesVisible = array_filter($pagesVisible, function($x) { return $x >= 1 and $x <= $this->context->transport->pageCount; });
$pagesVisible = array_unique($pagesVisible);
sort($pagesVisible, SORT_NUMERIC);
?>
<?php foreach ($pagesVisible as $page): ?> <?php foreach ($pagesVisible as $page): ?>
<?php if ($page == $this->context->transport->page): ?> <?php if ($page == $this->context->transport->page): ?>
<li class="active"> <li class="active">
@ -77,3 +78,4 @@ if (!function_exists('pageUrl'))
</li> </li>
</ul> </ul>
</nav> </nav>
<?php endif ?>