Автор Тема: pagination.tpl как скрыть если всего одна страница  (Прочитано 1039 раз)

13 Августа 2014, 11:58:44
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте. Проблема у меня такая. сайт на престе, есть фильтры, когда на фильтры нажимаешь страницы в pagination тоже уменьшаются и доходит до того что остается всего одна страница и выводится "1" , и надо скрыть эту единицу, только не пойму как. Подскажите добрые люди, мне очень срочно надо.  а если есть две и более , то тогда конечно ничего скрывать не надо.
13 Августа 2014, 12:03:52
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле blocklayered.js функция paginationButton(). В ней можете добавить сокрытие блока с номерами страниц.
13 Августа 2014, 12:12:40
Ответ #2
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за быстрый ответ. вот что-то не пойму как именно. Если конечно вас не затруднит, можете написать как? вроде писать не много
13 Августа 2014, 12:16:41
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1010
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Там все есть, поставьте условие меньше 1 и скопируйте код
$('#pagination a').hide();...
13 Августа 2014, 12:20:23
Ответ #4
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Просто javascript мое слабое место ,  мне его еще учить. Если можно как в точности написать надо и куда вставить?
Извините за тупники.
13 Августа 2014, 12:41:50
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 13287
  • Репутация: +14557/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно в шаблоне pagination.tpl удалить показ кнопок навигации
{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)}">&laquo;&nbsp;{l s='Previous'}</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)}">{l s='Next'}&nbsp;&raquo;</a></li>
{/if}
13 Августа 2014, 12:44:24
Ответ #6
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно в шаблоне pagination.tpl удалить показ кнопок навигации
{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)}">&laquo;&nbsp;{l s='Previous'}</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)}">{l s='Next'}&nbsp;&raquo;</a></li>
{/if}

ДА но мне кнопки навигации нужны. Бывает же что товаров мало или по фильтрам мало и всего одна страница, и там высвечивается "1" то есть единица. и мне надо только когда это единица чтоб ее видно небыло. а когда 2 или более страниц чтоб все было как есть
13 Августа 2014, 13:13:32
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 13287
  • Репутация: +14557/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда в модуле Многоуровневой навигации, blocklayered.js, отменяйте показ кнопок при nbPage равном 1
if (nbPage == 1)
    $('div.pagination').hide();
13 Августа 2014, 13:23:48
Ответ #8
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Тогда в модуле Многоуровневой навигации, blocklayered.js, отменяйте показ кнопок при nbPage равном 1
if (nbPage == 1)
    $('div.pagination').hide();
Сделал, там верстка чуть едет - но это фигня, все равно эта единица остается
вот файл скрипта , правильно я вставил и поменял на ul и дивом все так же.

function paginationButton() {
    if (nbPage == 1)
        $('ul.paginations').hide();
$('#pagination a').not(':hidden').each(function () {
if ($(this).attr('href').search('&p=') == -1) {
var page = 1;
}
else {
var page = $(this).attr('href').replace(/^.*&p=(\d+).*$/, '$1');
}
var location = window.location.href.replace(/#.*$/, '');
$(this).attr('href', location+current_friendly_url.replace(/\/page-(\d+)/, '')+'/page-'+page);
});
и так далее.

а вот тпл пагинации
<div id="pagination">
{if isset($no_follow) AND $no_follow}
{assign var='no_follow_text' value='rel="nofollow"'}
{else}
{assign var='no_follow_text' value=''}
{/if}

{assign var="total_products" value=sizeof($poducts)}

{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}
{assign var='requestPage' value=$link->getPaginationLink(false, false, false, false, true, false)}
{assign var='requestNb' value=$link->getPaginationLink(false, false, true, false, false, true)}
{/if}
<!-- Pagination -->

    <ul class="paginations">
        {if $p != 1}
            {assign var='p_previous' value=$p-1}
            <li id="pagination_previous"><a {$no_follow_text} href="{$link->goPage($requestPage, $p_previous)}" class=""><i class="pagination_last_left"></i></a></li>
        {else}
            &nbsp;
        {/if}
        {if $start==3}
            <li><a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}">1</a></li>
            <li><a {$no_follow_text}  href="{$link->goPage($requestPage, 2)}">2</a></li>
        {/if}
        {if $start==2}
            <li><a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}">1</a></li>
        {/if}
        {if $start>3}
            <li><a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}">1</a></li>
            <li class="truncate">...</li>
        {/if}
        {section name=pagination start=$start loop=$stop+1 step=1}
            {if $p == $smarty.section.pagination.index}
                <li class="current"><span>{$p|escape:'htmlall':'UTF-8'}</span></li>
            {else}
                <li><a {$no_follow_text} href="{$link->goPage($requestPage, $smarty.section.pagination.index)}">{$smarty.section.pagination.index|escape:'htmlall':'UTF-8'}</a></li>
            {/if}
        {/section}
        {if $pages_nb>$stop+2}
            <li class="truncate">...</li>
            <li><a href="{$link->goPage($requestPage, $pages_nb)}">{$pages_nb|intval}</a></li>
        {/if}
        {if $pages_nb==$stop+1}
            <li><a href="{$link->goPage($requestPage, $pages_nb)}">{$pages_nb|intval}</a></li>
        {/if}
        {if $pages_nb==$stop+2}
            <li><a href="{$link->goPage($requestPage, $pages_nb-1)}">{$pages_nb-1|intval}</a></li>
            <li><a href="{$link->goPage($requestPage, $pages_nb)}">{$pages_nb|intval}</a></li>
        {/if}
        {if $pages_nb > 1 AND $p != $pages_nb}
            {assign var='p_next' value=$p+1}
            <li id="pagination_next"><a {$no_follow_text} href="{$link->goPage($requestPage, $p_next)}" class="small_icon"><i class="icon-right-thin"></i></a></li>
        {else}
            &nbsp;
        {/if}
    </ul>
    </div>

    </fieldset>


<!-- /Pagination -->
{/if}
13 Августа 2014, 13:31:53
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 32999
  • Репутация: +26759/-0
    • Просмотр профиля
Вот это перенести в конец функции.
if (nbPage == 1) $('div.pagination').hide();Если прячете в blocklayered, то шаблон pagination.tpl не нужно трогать.
13 Августа 2014, 13:35:23
Ответ #10
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот это перенести в конец функции.
if (nbPage == 1) $('div.pagination').hide();Если прячете в blocklayered, то шаблон pagination.tpl не нужно трогать.

Шаблон такой какой есть , я его менял для нужд. он вверху
этот метод не помогает. единица остается. только виды сортировки уезжают вправо на пагинацию. типа див изчезает и образовывается свободное место поэтому верстка едет. но это все неважно. главное единица остается.
Спасибо
13 Августа 2014, 13:46:48
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 32999
  • Репутация: +26759/-0
    • Просмотр профиля
13 Августа 2014, 13:49:15
Ответ #12
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Prestashop версия какая?

PrestaShop™ 1.5.6.0
http://stereohead.com.ua/ вот этот сайт делаю. можете посмотреть в действии как 1 остается. просто задайте несколько фильтров.
13 Августа 2014, 14:46:01
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 32999
  • Репутация: +26759/-0
    • Просмотр профиля
У вас же не стандарная тема. Подставляйте свои классы.
Не
$('div.pagination').hide()а
$('ul.paginations').hide()
13 Августа 2014, 15:00:29
Ответ #14
  • Новичок
  • *
  • Сообщений: 31
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас же не стандарная тема. Подставляйте свои классы.
Не
$('div.pagination').hide()а
$('ul.paginations').hide()

именно это я и делаю
function paginationButton() {
    if (nbPage == 1) $('ul.paginations').hide();

$('#pagination a').not(':hidden').each(function () {
if ($(this).attr('href').search('&p=') == -1) {
var page = 1;
}
else {
var page = $(this).attr('href').replace(/^.*&p=(\d+).*$/, '$1');
}
var location = window.location.href.replace(/#.*$/, '');
$(this).attr('href', location+current_friendly_url.replace(/\/page-(\d+)/, '')+'/page-'+page);
});

Вот что получается (картинка)
http://hostingkartinok.com/show-image.php?id=47e5233cbef4e3b4a26c28ce06005848

Как видите единица остается. есть еще мысли как это все сделать?