Автор Тема: Нумерация страниц  (Прочитано 747 раз)

03 Июнь 2016, 16:46:52
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте Уважаемые,

у меня с нумерацией страниц есть така проблемка, захожу в категорию, там например 30 товаров, на каждой странице показывается 12 товаров, на первой странице в секции нумерации страниц пишется "Всего товаров 30, отображается с 1-го по 12-ый". С первой страницей всё ок, но на всех следующих странмцах есть ошибка, напимер на второй странице пишется "Всего товаров 13, отображается с 30-го по 12-ый", если обратили внимание места цифр 13 и 30 поменялись местами. Подскажите плиз, где это исправить, как это исправить? Тема не дефолтная, приобретена на Темплейт Монстре. Благодарю за внимание.
03 Июнь 2016, 17:13:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В стандарной теме это шаблон - /themes/default-bootstrap/pagination.tpl
В нем в самом начале переменные подсчета страниц.
03 Июнь 2016, 17:51:32
Ответ #2
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
привет Adik, спасибо за отклик, давай я выставлю код шаблона pagination.tpl темы которую я использую(не дефолтной) и ты посмотри пожалуйста есть там ошибка или нет:

{if isset($no_follow) AND $no_follow}
{assign var='no_follow_text' value='rel="nofollow"'}
{else}
{assign var='no_follow_text' value=''}
{/if}

{if isset($p) AND $p}
{if isset($smarty.get.id_category) && $smarty.get.id_category && isset($category)}
{if !isset($current_url)}
{assign var='requestPage' value=$link->getPaginationLink('category', $category, false, false, true, false)}
{else}
{assign var='requestPage' value=$current_url}
{/if}
{assign var='requestNb' value=$link->getPaginationLink('category', $category, true, false, false, true)}
{elseif isset($smarty.get.id_manufacturer) && $smarty.get.id_manufacturer && isset($manufacturer)}
{assign var='requestPage' value=$link->getPaginationLink('manufacturer', $manufacturer, false, false, true, false)}
{assign var='requestNb' value=$link->getPaginationLink('manufacturer', $manufacturer, true, false, false, true)}
{elseif isset($smarty.get.id_supplier) && $smarty.get.id_supplier && isset($supplier)}
{assign var='requestPage' value=$link->getPaginationLink('supplier', $supplier, false, false, true, false)}
{assign var='requestNb' value=$link->getPaginationLink('supplier', $supplier, true, false, false, true)}
{else}
{if !isset($current_url)}
{assign var='requestPage' value=$link->getPaginationLink(false, false, false, false, true, false)}
{else}
{assign var='requestPage' value=$current_url}
{/if}
{assign var='requestNb' value=$link->getPaginationLink(false, false, true, false, false, true)}
{/if}
<!-- Pagination -->
<div id="pagination{if isset($paginationId)}_{$paginationId}{/if}" class="pagination clearfix">
    {if $nb_products > $products_per_page && $start!=$stop}
<form class="showall" action="{if !is_array($requestNb)}{$requestNb}{else}{$requestNb.requestUrl}{/if}" method="get">
<div>
{if isset($search_query) AND $search_query}
<input type="hidden" name="search_query" value="{$search_query|escape:'html':'UTF-8'}" />
{/if}
{if isset($tag) AND $tag AND !is_array($tag)}
<input type="hidden" name="tag" value="{$tag|escape:'html':'UTF-8'}" />
{/if}
                <button type="submit" class="btn btn-default">
                <span>{l s='Show all'}</span>
                </button>
{if is_array($requestNb)}
{foreach from=$requestNb item=requestValue key=requestKey}
{if $requestKey != 'requestUrl' && $requestKey != 'p'}
<input type="hidden" name="{$requestKey|escape:'html':'UTF-8'}" value="{$requestValue|escape:'html':'UTF-8'}" />
{/if}
{/foreach}
{/if}
                <input name="n" id="nb_item" class="hidden" value="{$nb_products}" />
</div>
</form>
{/if}

        {if $start!=$stop}
<ul class="pagination">
{if $p != 1}
{assign var='p_previous' value=$p-1}
<li id="pagination_previous{if isset($paginationId)}_{$paginationId}{/if}" class="pagination_previous">
<a {$no_follow_text} href="{$link->goPage($requestPage, $p_previous)}" title="{l s='Previous'}" rel="prev">
<i class="fa fa-chevron-left"></i>
                            <b>{l s='Previous'}</b>
</a>
</li>
{else}
<li id="pagination_previous{if isset($paginationId)}_{$paginationId}{/if}" class="disabled pagination_previous">
<span>
<i class="fa fa-chevron-left"></i>
                            <b>{l s='Previous'}</b>
</span>
</li>
{/if}
{if $start==3}
<li>
<a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}">
<span>1</span>
</a>
</li>
<li>
<a {$no_follow_text}  href="{$link->goPage($requestPage, 2)}">
<span>2</span>
</a>
</li>
{/if}
{if $start==2}
<li>
<a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}">
<span>1</span>
</a>
</li>
{/if}
{if $start>3}
<li>
<a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}">
<span>1</span>
</a>
</li>
<li class="truncate">
<span>
<span>...</span>
</span>
</li>
{/if}
{section name=pagination start=$start loop=$stop+1 step=1}
{if $p == $smarty.section.pagination.index}
<li class="active current">
<span>
<span>{$p|escape:'html':'UTF-8'}</span>
</span>
</li>
{else}
<li>
<a {$no_follow_text} href="{$link->goPage($requestPage, $smarty.section.pagination.index)}">
<span>{$smarty.section.pagination.index|escape:'html':'UTF-8'}</span>
</a>
</li>
{/if}
{/section}
{if $pages_nb>$stop+2}
<li class="truncate">
<span>
<span>...</span>
</span>
</li>
<li>
<a href="{$link->goPage($requestPage, $pages_nb)}">
<span>{$pages_nb|intval}</span>
</a>
</li>
{/if}
{if $pages_nb==$stop+1}
<li>
<a href="{$link->goPage($requestPage, $pages_nb)}">
<span>{$pages_nb|intval}</span>
</a>
</li>
{/if}
{if $pages_nb==$stop+2}
<li>
<a href="{$link->goPage($requestPage, $pages_nb-1)}">
<span>{$pages_nb-1|intval}</span>
</a>
</li>
<li>
<a href="{$link->goPage($requestPage, $pages_nb)}">
<span>{$pages_nb|intval}</span>
</a>
</li>
{/if}
{if $pages_nb > 1 AND $p != $pages_nb}
{assign var='p_next' value=$p+1}
<li id="pagination_next{if isset($paginationId)}_{$paginationId}{/if}" class="pagination_next">
<a {$no_follow_text} href="{$link->goPage($requestPage, $p_next)}" rel="next">
<b>{l s='Next'}</b> <i class="fa fa-chevron-right"></i>
</a>
</li>
{else}
<li id="pagination_next{if isset($paginationId)}_{$paginationId}{/if}" class="disabled pagination_next">
<span>
<b>{l s='Next'}</b> <i class="fa fa-chevron-right"></i>
</span>
</li>
{/if}
</ul>
{/if}
</div>
   
    <div class="product-count">
    {if ($n*$p) < $nb_products }
    {assign var='productShowing' value=$n*$p}
        {else}
        {assign var='productShowing' value=($n*$p-$nb_products-$n*$p)*-1}
        {/if}
        {if $p==1}
        {assign var='productShowingStart' value=1}
        {else}
        {assign var='productShowingStart' value=$n*$p-$n+1}
        {/if}
        {if $nb_products > 1}
        {l s='Showing %1$d - %2$d of %3$d items' sprintf=[$productShowingStart, $productShowing, $nb_products]}
{else}
        {l s='Showing %1$d - %2$d of 1 item' sprintf=[$productShowingStart, $productShowing]}
        {/if}
    </div>
<!-- /Pagination -->
{/if}
03 Июнь 2016, 18:13:48
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
<div class="product-count">
    {if ($n*$p) < $nb_products }
    {assign var='productShowing' value=$n*$p}
        {else}
        {assign var='productShowing' value=($n*$p-$nb_products-$n*$p)*-1}
        {/if}
        {if $p==1}
        {assign var='productShowingStart' value=1}
        {else}
        {assign var='productShowingStart' value=$n*$p-$n+1}
        {/if}
        {if $nb_products > 1}
        {l s='Showing %1$d - %2$d of %3$d items' sprintf=[$productShowingStart, $productShowing, $nb_products]}
{else}
        {l s='Showing %1$d - %2$d of 1 item' sprintf=[$productShowingStart, $productShowing]}
        {/if}
</div>
Вот этот код отвечает за показ количества товаров и с какого по какой показан. Сравните со своим.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
03 Июнь 2016, 18:17:26
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если у вас установлен модуль фильтров, то он переопределяет переменные
%1$d  %2$d  %3$d
03 Июнь 2016, 18:28:07
Ответ #5
  • Пользователь
  • **
  • Сообщений: 81
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если у вас установлен модуль фильтров, то он переопределяет переменные
%1$d  %2$d  %3$d

Привет DarinSr, видимо дело было именно в нём, в переводе я поставил %3$d на первом месте, типа "Всего %3$d, показывается от %1$d до %2$d". Теперь я просил %3$d в конец  "Показывается от %1$d до %2$d, Всего %3$d" и прблема решилась. Спасибо всем за помощь и за уделённое время, благодарю!