Расширенная пагинация страниц, которая выводит первые или последние номера страниц в зависимости от текущего расположения посетителя на последних или первых страницах соответственно. Выложен as is для одного компонента с заданным URL, требует доработки для повторного использования (использование Hidden_URL вместо вшитых ссылок + номера компонента и количества объектов на странице вместо вшитых в код значений)
<div class='pagination'> <? if ($prevLink) echo "<a href='".$prevLink."' class='previous_page'>← Назад</a>"; else echo "<span class='disabled previous_page'>← Назад</span>"; ?> <? $pages = ceil($totRows/$recNum); $page = $curPos/$recNum; if ($page > $recNum) { ?> <a href="/news/">1</a> <a href="/news/?cur_cc=521&curPos=<?= $recNum ?>">2</a> <span class="gap">…</span> <? } ?> <?= nc_browse_messages($cc_env, 10) ?> <? if ($pages - 7 > $page) { ?> <span class="gap">…</span> <a href="/news/?cur_cc=521&curPos=<?= ($pages-2)*$recNum ?>"><?= $pages-1; ?></a> <a href="/news/?cur_cc=521&curPos=<?= ($pages-1)*$recNum ?>"><?= $pages; ?></a> <? } ?> <? if ($nextLink) echo "<a href='".$nextLink."' class='next_page'>Вперед →</a>"; else echo "<span class='disabled next_page'>Вперед →</span>"; ?> </div>