Плагин пагинации для modxsmarty

Пару слов зачем это нужно. getPage — не делает пагинацию с прострелами. pageNav — работает только со сниппетами. Использование. В папку core/components/modxsmarty/smarty_plugins/ бросаем файл function.pagination.php Создаем файл с оформлением пагинации catalog/list/pagination/index.tpl {pagination items=$items current=$current_page prev_next=true assign=pagination}

        <div class="pagination">
        {assign var=prev value=1}

        {if $pagination.prev.id}
        <a href="{$pagination.prev.href}">предыдущая</a>
        {/if}
       
        {foreach from=$pagination.pages item=page name=pagination}                 
            {if (($page.id-$prev) > 1)}
            <span>...</span>
            {/if}
            {if $page.type == 'current'}
            <span class="current">{$page.id}</span>
            {else}
            <a href="{$page.href}">{$page.id}</a>
            {/if}
        {assign var=prev value=$page.id}    
        {/foreach} 

        {if $pagination.next.id}
        <a href="{$pagination.next.href}">следующая</a>
        {/if}
         
        </div> В шаблоне где нужно вывести пагинацию пишем

(Вместо 93 подставить количество елементов в выборке) {assign var=items value=93} {assign var=current_page value=$smarty.request.page|default:1} {include file="catalog/list/pagination/index.tpl"} В результате получим такую картинку ?

Сергей, спасибо! То, что надо!

Сергей, спасибо за полезный плагин! Буквально вот такой только момент: github.com/Husband/paging/blob/master/function.pagination.php#L13 Мне кажется не стоит объявлять функцию setDefaultProperties. Во-первых, слишком общее название, и может эта функция будет в каком-нибудь другом плагине, и все, дефолтовые значения будут другие. Во-вторых, у тебя же там просто мерж, то есть там нет вариантов для нотисов и т.п. Там вполне можно обойтись без лишней функции.

Спасибо за замечание. Обновил репозиторий.

Не за что!

Да, хорошо! Одно плохо поисковики ругаются на одинаковое содержание полей title,description,keywords. И фиксируют их как дубли с понижением рейтинга. И как я понял способа бороься с этим не существует. Если кто не согласен конкретно — опровегните ):

  1. Спасает мета-тег canonical. Поставьте сниппет MetaX и не заморачивайтесь.
  2. Запретите в robots.txt индексацию страниц с параметрами. Disallow: ?

А что мешает при генерации страницы учитывать $smarty.get.page? Например, первое, что приходит в голову — <h1>{$modx->resource->pagetitle}{if $smarty.get.page}, страница {$smarty.get.page}{/if}</h1> или можно и дальше пойти — менять ВСЕ, вплоть до контента. Просто создать MIGX-переменную, и нужные поля брать оттуда. Я так делал на одном сайте

Николай! скажите, куда будет попадать пользователь, после того как нажмет на, скажем, на 6-ю страницу пагинации Александр! В evo есть способ через применение системной переменной номера страницы пагинации. Я в revo. Вот эта резервная переменная она какое значение принимает для разных страниц пагинации??

скажите, куда будет попадать пользователь, после того как нажмет на, скажем, на 6-ю страницу пагинации На 6-ую страницу.

Вообще говря решается просто — надо ввести в поле этих тегов системную переменную, которая была бы оригинальной для каждой страницы пагинации. Я просто не могу даже найти список этих переменных для modx revo/ Черт возьми элементарная вешь но в инете нет.

Черт возьми элементарная вешь но в инете нет. Может потому что вы ищете то, чего в принципе не должно быть? Если бы нужно было бы, она давно нужна была бы уже. Я вам давно уже написал: 1. Спасает мета-тег canonical. Поставьте сниппет MetaX и не заморачивайтесь. Нафига вы голову греете себе и другим? Что за любовь к извращениям?

Вот эта резервная переменная она какое значение принимает для разных страниц пагинации?? Это переменная smarty, в которую кладутся get-параметры запроса. Если задаете вопрос в этом топике, то я предполагаю, используете smarty. Если все-таки нет (?!), то можно написать сниппет, который будет анализировать $_GET['page'] и соответственно что-то выводить.

Уважаемый Александр! Мне подходит Ваш совет о применении Smarty/ Я ознакомился, что это такое. Но мне непонятно Ваше конкретное его применение. Ведь боты ругаются на поля заголовка, описания и ключей. Надо только изменить эти теги. Может быть Вы подскажите как конкретно вставить туда smarty?

В принципе, я все уже выше написал: http://modxclub.ru/blog/dokumentatsiya-dlya-spetsialistov/268.html#comment-7205 Даже не представляю, что может быть более конкретным. А переписывать сюда руководство по smarty — извиняюсь, но времени катастрофически не хватает. тут http://www.smarty.net/docsv2/ru/ все более чем подробно описано.

Все нормально! Спасибо.