1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-16 21:34:25 +03:00
ifhub.club/application/frontend/skin/developer/components/pagination/pagination.tpl

86 lines
3.2 KiB
Smarty
Raw Normal View History

{**
* Пагинация
*
* @param string $paging Массив с параметрами пагинации
* @param string $classes Дополнительные классы
* @param string $mods Список классов-модификаторов
* @param string $attributes Атрибуты
2014-05-04 06:52:24 +03:00
*
* @styles assets/css/components/pagination.css
2014-05-04 06:52:24 +03:00
*
* TODO: Сделать универсальные ссылки
*}
{* Название компонента *}
{$component = 'pagination'}
2014-05-04 06:52:24 +03:00
{* Переменные *}
{$_paging = $smarty.local.paging}
2014-05-04 06:52:24 +03:00
{**
* Элемент пагинации
*
* @param bool $isActive (false) Если true, то элемент помечается как активный (текущая страница)
* @param string $url Ссылка
* @param string $text Текст
* @param string $linkClasses Дополнительные классы для ссылки
*}
2014-05-04 06:52:24 +03:00
{function item}
<li class="{$component}-item {if $isActive}active{/if}">
{if $url}
<a class="{$component}-item-inner {$component}-item-link {$linkClasses}" href="{$url}">{$text}</a>
2014-05-04 06:52:24 +03:00
{else}
<span class="{$component}-item-inner">{$text}</span>
2014-05-04 06:52:24 +03:00
{/if}
</li>
{/function}
2014-05-04 06:52:24 +03:00
{**
* Страницы
*}
{if $_paging && $_paging.iCountPage > 1}
<nav class="{$component} {mod name=$component mods=$smarty.local.mods} {$smarty.local.classes} js-{$component}" role="navigation" {$smarty.local.attributes}>
2014-05-04 06:52:24 +03:00
{* Следущая / предыдущая страница *}
<ul class="{$component}-list">
2014-05-04 06:52:24 +03:00
{* Следущая страница *}
{if $_paging.iPrevPage}
{item url="{$_paging.sBaseUrl}{if $_paging.iPrevPage > 1}/page{$_paging.iPrevPage}{/if}/{$_paging.sGetParams}" text="&larr; {$aLang.pagination.previous}" linkClasses="js-{$component}-prev"}
{else}
{item text="&larr; {$aLang.pagination.previous}"}
{/if}
2014-05-04 06:52:24 +03:00
{* Предыдущая страница *}
{if $_paging.iNextPage}
{item url="{$_paging.sBaseUrl}/page{$_paging.iNextPage}/{$_paging.sGetParams}" text="{$aLang.pagination.next} &rarr;" linkClasses="js-{$component}-next"}
{else}
{item text="{$aLang.pagination.next} &rarr;"}
{/if}
</ul>
2014-05-04 06:52:24 +03:00
{* Список страниц *}
<ul class="{$component}-list">
2014-05-04 06:52:24 +03:00
{* Первая страница *}
{if $_paging.iCurrentPage > 1}
{item url="{$_paging.sBaseUrl}/{$_paging.sGetParams}" text=$aLang.pagination.first}
2011-04-01 10:49:36 +03:00
{/if}
2014-05-04 06:52:24 +03:00
{* Страницы слева от текущей *}
{foreach $_paging.aPagesLeft as $iPage}
{item url="{$_paging.sBaseUrl}{if $iPage > 1}/page{$iPage}{/if}/{$_paging.sGetParams}" text=$iPage}
2011-04-01 10:49:36 +03:00
{/foreach}
2014-05-04 06:52:24 +03:00
{* Текущая активная страница *}
{item isActive=true text=$_paging.iCurrentPage}
2014-05-04 06:52:24 +03:00
{* Страницы справа от текущей *}
{foreach $_paging.aPagesRight as $iPage}
{item url="{$_paging.sBaseUrl}{if $iPage > 1}/page{$iPage}{/if}/{$_paging.sGetParams}" text=$iPage}
2011-04-01 10:49:36 +03:00
{/foreach}
2014-05-04 06:52:24 +03:00
{* Последняя страница *}
{if $_paging.iCurrentPage < $_paging.iCountPage}
{item url="{$_paging.sBaseUrl}/page{$_paging.iCountPage}/{$_paging.sGetParams}" text=$aLang.pagination.last}
2014-05-04 06:52:24 +03:00
{/if}
2011-04-01 10:49:36 +03:00
</ul>
</nav>
2011-04-01 10:49:36 +03:00
{/if}