пагинатор. Изменить отображение. Есть решение

Необходимо из 


сделать


Почитав форум, кажется догадываюсь, что это в /wa-system/vendors/smarty-plugins/function.wa_pagination.php

Но как сделать вот такой вид пагинатора? Чтобы не отображалась последняя страница? Ну и первая, в случае, если открыта последняя/в середине вот так:


2 ответа

  • 2
    replicant 22 апреля 2019 08:52 # Решение

    Можно попробовать поиграться условием на nb=X, где X зависит от total и/или от текущей страницы, но условия вам придется для разных случаев придумывать самостоятельно. Поглядите ещё вот тут https://support.webasyst.ru/fo...

  • 2
    replicant 19 апреля 2019 23:20 #

    Можно попробовать поменять значение nb в шаблонах

    {wa_pagination total=$pages_count nb=2 attrs=['class'=>"menu-lazy"]}

    nb - количество отображения ссылок в начале и в конце

    • +1
      Геннадий Геннадий 21 апреля 2019 22:45 #

      За количество, спасибо! Но мне наверное надо было добавить, что мне не хотелось бы отображать последнюю страницу "5" в списке. 

      То есть, 1,2,3,4,-> ; <-2,3,4,5

      Если страниц больше, а мы в где-то центре, 

      то <,3,4,5,6>

    • +1
      Геннадий Геннадий 29 апреля 2019 12:03 #

      Смотрите, а если страниц фактически очень много. Допустим 20 страниц это же не исправит... Получается при $total = $pages_count и nb = 2 на первой странице: 1,2,19,20> , а на 10: 1,2,9,10,11,12,19,20>

      • +1
        replicant replicant 29 апреля 2019 12:47 #

        nb=0 тоже допускается. У меня вот сделано так (в своих магазинах совмещаю постраничную навигацию и ленивую загрузку одновременно).

            {if $pages_count > 5}
                    {shop_pagination_plugin total=$pages_count nb=1 attrs=['class'=>"menu-lazy"]}
                {else}
                    {shop_pagination_plugin total=$pages_count nb=0 attrs=['class'=>"menu-lazy"]}
            {/if}
        * - shop_pagination_plugin надо заменить на wa_pagination, для обычного случая
        Для 5 страниц



        Для более, чем 5 страниц




        Или можно обыграть условие в зависимости от текущей страницы, а начало будет как на первом скриншоте
                    {if $wa->get('page',1) > 1 }
                            {shop_pagination_plugin total=$pages_count nb=0 attrs=['class'=>"menu-lazy"]}
                        {else}
                            {shop_pagination_plugin total=$pages_count nb=1 attrs=['class'=>"menu-lazy"]}
                    {/if}

        Тогда получится примерно такой вид

        Понимаю, что вы всё равно хотите не так, а как-то по-своему, но в вашем случае штатного решения нет. Только переписывать исходник или писать что-то на JS, чтобы переделывать выводимую информацию прямо на странице. Окупятся ли затраты сил, времени и средств на доработку произведённым эффектом сказать сложно. Вам виднее.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите