Files
AtomicOld/design/atomic/html/pagination.tpl

42 lines
2.9 KiB
Smarty
Raw Normal View History

2026-02-15 18:29:53 +03:00
{* Постраничный вывод *}
{if $total_pages_num>1}
{* Скрипт для листания через ctrl → *}
{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *}
<script type="text/javascript" src="js/ctrlnavigate.js"></script>
{*url*}
<!-- Листалка страниц -->
<ul class="pagination pagination-sm">
{* Количество выводимых ссылок на страницы *}
{if !$visible_pages}{$visible_pages = 13}{/if}
{* По умолчанию начинаем вывод со страницы 1 *}
{$page_from = 1}
{* Если выбранная пользователем страница дальше середины "окна" - начинаем вывод уже не с первой *}
{if $current_page_num > floor($visible_pages/2)}
{$page_from = max(1, $current_page_num-floor($visible_pages/2)-1)}
{/if}
{* Если выбранная пользователем страница близка к концу навигации - начинаем с "конца-окно" *}
{if $current_page_num > $total_pages_num-ceil($visible_pages/2)}
{$page_from = max(1, $total_pages_num-$visible_pages-1)}
{/if}
{* До какой страницы выводить - выводим всё окно, но не более ощего количества страниц *}
{$page_to = min($page_from+$visible_pages, $total_pages_num-1)}
{* Ссылка на 1 страницу отображается всегда *}
<li {if $current_page_num==1}class="active"{/if}><a href="{$smarty.server.SCRIPT_URL}">1</a></li>{*$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI*}
{* Выводим страницы нашего "окна" *}
{section name=pages loop=$page_to start=$page_from}
{* Номер текущей выводимой страницы *}
{$p = $smarty.section.pages.index+1}
{* Для крайних страниц "окна" выводим троеточие, если окно не возле границы навигации *}
{if ($p == $page_from+1 && $p!=2) || ($p == $page_to && $p != $total_pages_num-1)}
<li {if $p==$current_page_num}class="active"{/if}><a href="{url page=$p}">...</a></li>
{else}
<li {if $p==$current_page_num}class="active"{/if}><a href="{url page=$p}">{$p}</a></li>
{/if}
{/section}
{* Ссылка на последнююю страницу отображается всегда *}
<li {if $current_page_num==$total_pages_num}class="active"{/if}><a href="{url page=$total_pages_num}">{$total_pages_num}</a></li>
{if $current_page_num>1}<li><a class="prev_page_link" href="{if $current_page_num !=2}{url page=$current_page_num-1}{else}{$smarty.server.SCRIPT_URL}{/if}">←назад</a></li>{/if}
{if $current_page_num<$total_pages_num}<li><a class="next_page_link" href="{url page=$current_page_num+1}">вперед→</a></li>{/if}
</ul>
<!-- Листалка страниц (The End) -->
{/if}