Своя пагинация для pdoPage

Добрый день!

Сейчас pdoPage работает так: при перезагрузке страницы если есть page неравный 1, то выбираются элементы только конкретной страницы. Если page = 2, то и покажутся элементы попадающие на 2-ю страницу.

Если ли возможность минимально изменив сниппет заставить его работать немного по другому: выводить элементы не только текущей страницы, но и предыдущих. Если у меня есть page = 2, то вывести элементы первой и второй страницы… Но при этом в hash что бы писалось все как и прежде. То есть просто выбирать дополнительно все предыдущие элементы.

Или там все переделывать придется? Подскажите пожалуйста… Сниппет довольно большой и я боюсь что-то сломать…
Андрей Сухомозгий
10 августа 2015, 10:40
modx.pro
1 095
0

Комментарии: 13

Воеводский Михаил
11 августа 2015, 02:43
+1
Сделать можно, но если в адресе указана 15 страница — загружать все 15? А если с 15 страницы перейти на 16 — придется отмотать содержимое всех 15 страниц?

Если «да» на оба вопроса, то рекомендую не издеваться над пользователями.
    Андрей Сухомозгий
    11 августа 2015, 07:50
    0
    тут я полностью поддерживаю. по хорошему нужна постраничная пагинация. Но) Есть тз, а там написано ajax подгрузка при скроле. При этом нужно, что бы при перезагрузке страницы юзер видел то, что он наскролил… вот типа того) я забыл сказать, что это для ajax нужно…
      Василий Наумкин
      11 августа 2015, 08:08
      +2
      Пагинация нужна для облегчения работы сервера и юзера. Объясни заказчику, что сайт может просто физически не вывезти показ 100 страниц за раз.

      Покажи пагинация Вконтакте, любых других сайтов. Я такой реализации, как ты описал, даже не видел нигде.

      Не всё, что хочет заказчик, возможно сделать. Жизнь вообще несправедливая, как это ни печально.
        Андрей Сухомозгий
        11 августа 2015, 08:13
        0
        тут все немного сложнее. сайт делается компанией и там тз подписывается… и про этот момент я узнал только после того как дизайн нарисовали…

        в любом случае объяснять буду, что так хуже. в альтернативу буду предлагать, то что в pdoPage из коробки: ajax + постраничная sticky навигация…
          Воеводский Михаил
          11 августа 2015, 08:19
          0
          Полностью согласен.

          Убрал костыль, который написал ниже.
          Воеводский Михаил
          11 августа 2015, 08:18
          0
          На почту письмо пришло с кодом вероятного костыля. Однако, так делать не стоит.
            Андрей Сухомозгий
            11 августа 2015, 08:22
            0
            спасибо. я пока что немного по другому сделал: смотрю какой page при загрузке и вызываю перед основным аяксовым pdoPage, еще один pdoRecources с лимитом limit*(page-1)
              Воеводский Михаил
              11 августа 2015, 08:23
              0
              Тоже форменное извращение.
                Андрей Сухомозгий
                11 августа 2015, 08:31
                0
                кстати костыль не работает… выводятся элементы только первой страницы
                  Воеводский Михаил
                  11 августа 2015, 09:04
                  0
                  Верно, упустил момент.

                  Снова ушло на почту.
                    Андрей Сухомозгий
                    11 августа 2015, 09:29
                    0
                    спасибо) но снова не работает)
                    у меня три страницы, по 2 элемента. когда на с первой страницы сколл — все нормально подгружает. когда обновляю при page=2 — загружаются результаты для первой и второй страницы и при дальнейшем скролле результаты третьей страницы не грузятся. Когда обновляю страницу при page=3 — перекидывает на первую страницу…
                      Воеводский Михаил
                      11 августа 2015, 09:30
                      0
                      Хм… Третий раз не будут пробовать. Это лишь подтверждает, что так делать не нужно ;)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      13