Наверх

Модификация getPage для приведения пагинации к общепризнанным стандартам

Знаете, что меня всегда бесило в getPage? Его алгоритм вывода номеров страниц. Я привык на большинстве сайтов, что мне показывают определенное количество номеров, например, десять, и это количество не меняется. Соответственно кнопки «Далее» и «Назад» находятся в одинаковых местах. У getPage же пагинация «скачет» в зависимости от того, на какой странице мы сейчас находимся:

« Назад   1   2   3   4   5   Далее »
« Назад   1   2   3   4   5   6   Далее »
« Назад   1   2   3   4   5   6   7   Далее »
« Назад   1   2   3   4   5   6   7   8   Далее »
« Назад   1   2   3   4   5   6   7   8   9   Далее »

Почему количество отображаемых номеров страниц изменяется? Это нелогично и непривычно большинству пользователей.

Я немного откорректировал код getPage и теперь он работает так:

« Назад   1   2   3   4   5   Далее »
« Назад   1   2   3   4   5   Далее »
« Назад   1   2   3   4   5   Далее »
« Назад   2   3   4   5   6   Далее »
« Назад   3   4   5   6   7   Далее »

Согласитесь, немного логичнее =)

Кому интересно, вот изменения, которые я внес. Скачать новый вариант getPage пока можно только по ссылке: getPage 1.2.4.

Скачанный пакет загружаем в папку /core/packages/ и в управлении пакетами нажимаем «Искать локально». Можно ставить прямо поверх старого getPage (если вы не изменяли в самом сниппете параметры по умолчанию).

4 комментария

  1. Юрий 03 ноября 2015, 12:38 # 0
    Привет, Илья!

    А ты никогда не задумывался о реализации обратной пагинации, преимущество которой:
    1. Каждую страницу можно спокойно индексировать в поисковиках, так как её адрес не меняется с добавлением контента.
    2. Более удобное пользование посетителями, так как при большом количестве страниц можно чётко знать на какой странице ты остановился и это не изменится при появлении новых страниц.
    Меня интересует, насколько сложно сделать такой реверс, например в pdoPage.
    1. Илья Уткин 05 ноября 2015, 12:36 # 0
      На первый взгляд, ничего сложного — всё реализуемо.

      Но алгоритм отображения номеров страниц придется переписывать заново. Так что не думаю, что получится просто модифицировать pdoPage…
      1. Юрий 06 ноября 2015, 10:27 # 0
        Спасибо за ответ. Со временем когда подучусь, попробую форкнуть pdoPage и добавить новый параметр &reverse. Мне кажется оно того стоит.
    2. Прогер 12 ноября 2015, 04:47 # 0
      Ух велосипедисты :)

      Авторизация

      через сервис Loginza:

      Подписка или RSS

      Буду присылать новые статьи — никакого спама



      Шаблоны MODX

      1 2 Дальше »

      Объектная
      модель
      MODX