2013-06-19 16:32:58 +03:00
|
|
|
|
{**
|
|
|
|
|
* Пагинация
|
2013-07-15 12:40:44 +03:00
|
|
|
|
*
|
2014-11-02 17:34:16 +02:00
|
|
|
|
* @param string $paging Массив с параметрами пагинации
|
2014-10-18 09:07:45 +03:00
|
|
|
|
* @param string $classes Дополнительные классы
|
|
|
|
|
* @param string $mods Список классов-модификаторов
|
|
|
|
|
* @param string $attributes Атрибуты
|
2014-05-04 06:52:24 +03:00
|
|
|
|
*
|
2014-05-10 18:45:14 +03:00
|
|
|
|
* @styles assets/css/components/pagination.css
|
2014-05-04 06:52:24 +03:00
|
|
|
|
*
|
|
|
|
|
* TODO: Сделать универсальные ссылки
|
|
|
|
|
*}
|
|
|
|
|
|
|
|
|
|
{* Название компонента *}
|
2014-10-18 09:07:45 +03:00
|
|
|
|
{$component = 'pagination'}
|
2014-05-04 06:52:24 +03:00
|
|
|
|
|
|
|
|
|
{* Переменные *}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{$_paging = $smarty.local.paging}
|
2014-05-04 06:52:24 +03:00
|
|
|
|
|
|
|
|
|
{**
|
|
|
|
|
* Элемент пагинации
|
|
|
|
|
*
|
2014-11-02 17:34:16 +02:00
|
|
|
|
* @param bool $isActive (false) Если true, то элемент помечается как активный (текущая страница)
|
|
|
|
|
* @param string $url Ссылка
|
|
|
|
|
* @param string $text Текст
|
|
|
|
|
* @param string $linkClasses Дополнительные классы для ссылки
|
2013-06-19 16:32:58 +03:00
|
|
|
|
*}
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{function item}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
<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}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
<span class="{$component}-item-inner">{$text}</span>
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{/if}
|
|
|
|
|
</li>
|
|
|
|
|
{/function}
|
2013-06-19 16:32:58 +03:00
|
|
|
|
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{**
|
|
|
|
|
* Страницы
|
|
|
|
|
*}
|
2014-11-05 17:45:27 +02:00
|
|
|
|
{if $_paging && $_paging.iCountPage > 1}
|
2014-10-18 09:07:45 +03:00
|
|
|
|
<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
|
|
|
|
{* Следущая / предыдущая страница *}
|
2014-10-18 09:07:45 +03:00
|
|
|
|
<ul class="{$component}-list">
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{* Следущая страница *}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{if $_paging.iPrevPage}
|
|
|
|
|
{item url="{$_paging.sBaseUrl}{if $_paging.iPrevPage > 1}/page{$_paging.iPrevPage}{/if}/{$_paging.sGetParams}" text="← {$aLang.pagination.previous}" linkClasses="js-{$component}-prev"}
|
2013-07-15 12:40:44 +03:00
|
|
|
|
{else}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{item text="← {$aLang.pagination.previous}"}
|
2013-07-10 11:36:21 +03:00
|
|
|
|
{/if}
|
2014-05-04 06:52:24 +03:00
|
|
|
|
|
|
|
|
|
{* Предыдущая страница *}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{if $_paging.iNextPage}
|
|
|
|
|
{item url="{$_paging.sBaseUrl}/page{$_paging.iNextPage}/{$_paging.sGetParams}" text="{$aLang.pagination.next} →" linkClasses="js-{$component}-next"}
|
2013-07-15 12:40:44 +03:00
|
|
|
|
{else}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{item text="{$aLang.pagination.next} →"}
|
2013-07-15 12:40:44 +03:00
|
|
|
|
{/if}
|
|
|
|
|
</ul>
|
|
|
|
|
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{* Список страниц *}
|
2014-10-18 09:07:45 +03:00
|
|
|
|
<ul class="{$component}-list">
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{* Первая страница *}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{if $_paging.iCurrentPage > 1}
|
|
|
|
|
{item url="{$_paging.sBaseUrl}/{$_paging.sGetParams}" text=$aLang.pagination.first}
|
2011-04-01 10:49:36 +03:00
|
|
|
|
{/if}
|
2013-07-15 12:40:44 +03:00
|
|
|
|
|
2014-05-04 06:52:24 +03:00
|
|
|
|
{* Страницы слева от текущей *}
|
2014-11-02 17:34:16 +02: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
|
|
|
|
|
|
|
|
|
{* Текущая активная страница *}
|
2014-11-02 17:34:16 +02:00
|
|
|
|
{item isActive=true text=$_paging.iCurrentPage}
|
2014-05-04 06:52:24 +03:00
|
|
|
|
|
|
|
|
|
{* Страницы справа от текущей *}
|
2014-11-02 17:34:16 +02: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
|
|
|
|
|
|
|
|
|
{* Последняя страница *}
|
2014-11-02 17:34:16 +02: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>
|
2013-07-15 12:40:44 +03:00
|
|
|
|
</nav>
|
2011-04-01 10:49:36 +03:00
|
|
|
|
{/if}
|