husband 16 ноября 2013 0 11
Пару слов зачем это нужно.
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"}


В результате получим такую картинку
11 комментариев
Tramp13571
Tramp1357 16 ноября 2013г в 20:42 #
Сергей, спасибо! То, что надо!
Fi1osof1
Fi1osof 17 ноября 2013г в 20:03 #
Сергей, спасибо за полезный плагин!
Буквально вот такой только момент: github.com/Husband/paging/blob/master/function.pagination.php#L13
Мне кажется не стоит объявлять функцию setDefaultProperties. Во-первых, слишком общее название, и может эта функция будет в каком-нибудь другом плагине, и все, дефолтовые значения будут другие. Во-вторых, у тебя же там просто мерж, то есть там нет вариантов для нотисов и т.п. Там вполне можно обойтись без лишней функции.
h
husband 18 ноября 2013г в 10:05 #
Спасибо за замечание. Обновил репозиторий.
Fi1osof1
Fi1osof 20 ноября 2013г в 13:25 #
Не за что!
r
rombich 23 июля 2015г в 21:17 #
Да, хорошо! Одно плохо поисковики ругаются на одинаковое содержание полей title,description,keywords.
И фиксируют их как дубли с понижением рейтинга. И как я понял способа бороься с этим не существует. Если кто не согласен конкретно — опровегните ):
Fi1osof1
Fi1osof 23 июля 2015г в 21:36 #
1. Спасает мета-тег canonical. Поставьте сниппет MetaX и не заморачивайтесь.
2. Запретите в robots.txt индексацию страниц с параметрами. Disallow: *?*
Tramp13571
Tramp1357 23 июля 2015г в 21:38 #
А что мешает при генерации страницы учитывать $smarty.get.page?
Например, первое, что приходит в голову —
<h1>{$modx->resource->pagetitle}{if $smarty.get.page}, страница {$smarty.get.page}{/if}</h1>

или можно и дальше пойти — менять ВСЕ, вплоть до контента. Просто создать MIGX-переменную, и нужные поля брать оттуда. Я так делал на одном сайте
r
rombich 24 июля 2015г в 14:42 #
Николай!
скажите, куда будет попадать пользователь, после того как нажмет на, скажем, на 6-ю страницу пагинации
Александр!
В evo есть способ через применение системной переменной номера страницы пагинации. Я в revo.
Вот эта резервная переменная она какое значение принимает для разных страниц пагинации??
Fi1osof1
Fi1osof 24 июля 2015г в 14:47 #
скажите, куда будет попадать пользователь, после того как нажмет на, скажем, на 6-ю страницу пагинации
На 6-ую страницу.
Tramp13571
Tramp1357 24 июля 2015г в 19:21 #
Вот эта резервная переменная она какое значение принимает для разных страниц пагинации??
Это переменная smarty, в которую кладутся get-параметры запроса.
Если задаете вопрос в этом топике, то я предполагаю, используете smarty.
Если все-таки нет (?!), то можно написать сниппет, который будет анализировать $_GET['page'] и соответственно что-то выводить.
r
rombich 24 июля 2015г в 15:18 #
Вообще говря решается просто — надо ввести в поле этих тегов системную переменную, которая была бы оригинальной для каждой страницы пагинации. Я просто не могу даже найти список этих переменных для modx revo/ Черт возьми элементарная вешь но в инете нет.
Fi1osof1
Fi1osof 24 июля 2015г в 15:24 #
Черт возьми элементарная вешь но в инете нет.
Может потому что вы ищете то, чего в принципе не должно быть? Если бы нужно было бы, она давно нужна была бы уже. Я вам давно уже написал:
1. Спасает мета-тег canonical. Поставьте сниппет MetaX и не заморачивайтесь.
Нафига вы голову греете себе и другим? Что за любовь к извращениям?
r
rombich 24 июля 2015г в 19:38 #
Уважаемый Александр!
Мне подходит Ваш совет о применении Smarty/ Я ознакомился, что это такое. Но мне непонятно Ваше конкретное его применение. Ведь боты ругаются на поля заголовка, описания и ключей. Надо только изменить эти теги. Может быть Вы подскажите как конкретно вставить туда smarty?
Tramp13571
Tramp1357 24 июля 2015г в 20:00 #
В принципе, я все уже выше написал: http://modxclub.ru/blog/dokumentatsiya-dlya-spetsialistov/268.html#comment-7205
Даже не представляю, что может быть более конкретным. А переписывать сюда руководство по smarty — извиняюсь, но времени катастрофически не хватает. тут http://www.smarty.net/docsv2/ru/ все более чем подробно описано.
r
rombich 24 июля 2015г в 20:16 #
Все нормально! Спасибо.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.