К содержанию

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

Добрый день!

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

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

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

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

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

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

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

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

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

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

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