Повторяются результаты пагинации (GalleryAlbums + pdoPage)
Приветствую всех!
Необходимо вывести на странице по 3 альбома с помощью GalleryAlbums, пагинация реализована с помощью pdoPage.
Всё работает за исключением того, что на последующих страницах пагинации результаты повторяются.
На форуме уже была похожая проблема pdoPage + GalleryAlbums (Пагинация не работает), но это решение мне не помогло. В журнале ошибок ничего нет, в инспекторе тоже.
Подобная проблема мне встречалась, когда я делал ajax пагинацию для SimpleSearch. Там всё работает как надо, но когда подключается ajax, то происходит ровно тоже самое. И, кстати, в том посте человек упоминает о конфликте между параметрами start и offset, якобы в этом главная проблема, но в SimpleSearch такой параметр называется offsetIndex и там без ajax никаких конфликтов нет.
Спасибо за внимание!
Необходимо вывести на странице по 3 альбома с помощью GalleryAlbums, пагинация реализована с помощью pdoPage.
<div id="pdopage">
<div class="posts-list posts-list--default one-right-sidebar">
[[!pdoPage?
&elementClass=`modSnippet`
&element=`GalleryAlbums`
&rowTpl=`tpl.gallery.albums`
&showAll=`0`
&parent=`12`
&sort=`year`
&dir=`DESC`
&limit=`3`
&tplPageWrapper=`@INLINE <nav class="navigation pagination" role="navigation"><h2 class="screen-reader-text">Навигация</h2><div class="nav-links">[[+prev]][[+pages]][[+next]]</div></nav>`
&tplPage=`@INLINE <a class='page-numbers' href='[[+href]]'>[[+pageNo]]</a>`
&tplPageActive=`@INLINE <span aria-current='page' class='page-numbers current'>[[+pageNo]]</span>`
&tplPagePrev=`@INLINE <a class="prev page-numbers" href="[[+href]]"><i class="material-icons">navigate_before</i></a>`
&tplPageNext=`@INLINE <a class="next page-numbers" href="[[+href]]"><i class="material-icons">navigate_next</i></a>`
&tplPageSkip=`@INLINE <span class="page-numbers dots">…</span>`
&tplPageFirst=``
&tplPageLast=``
&tplPagePrevEmpty=``
&tplPageNextEmpty=``
&tplPageFirstEmpty=``
&tplPageLastEmpty=``
]]
</div>
[[!+page.nav]]
</div>
На форуме уже была похожая проблема pdoPage + GalleryAlbums (Пагинация не работает), но это решение мне не помогло. В журнале ошибок ничего нет, в инспекторе тоже.
Подобная проблема мне встречалась, когда я делал ajax пагинацию для SimpleSearch. Там всё работает как надо, но когда подключается ajax, то происходит ровно тоже самое. И, кстати, в том посте человек упоминает о конфликте между параметрами start и offset, якобы в этом главная проблема, но в SimpleSearch такой параметр называется offsetIndex и там без ajax никаких конфликтов нет.
Спасибо за внимание!
Комментарии: 3
пробуй для обертки результатов добавить класс .rows
<div id="pdopage">
<div class="posts-list posts-list--default one-right-sidebar rows">
[[!pdoPage?
...
]]
</div>
[[!+page.nav]]
</div>
Добавил класс .rows, но альбомы выводятся также (с ajax и без — одинаково). Зато это помогло в другом месте — там перестали дублироваться результаты (но это наблюдалось только с включенным ajax). Я думал, что достаточно указать любой класс в &ajaxElemRows, но видимо нужно использовать конкретно класс .rows.
Решил вернуться к этой проблеме и еще раз изучил пост на который я давал ссылку. Там человек вначале говорит умную мысль (https://modx.pro/help/14395#comment-93157), что возможно есть проблема в отличии переменных отвечающих за сдвиг результатов на странице, в pdo это offset, а в galleryalbums это start. Я не обратил на это внимание, поскольку в других сниппетах тоже эти переменные отличаются, но работает же как то. Я решил взять и тупо заменить переменные start на offset и всё заработало. Исправил файл /core/components/gallery/model/gallery/galalbum.class.php и сниппет GalleryAlbums в элементах.
Возможно, позже это как-то аукнется, но пока полёт нормальный. Если есть какие то опасения по поводу такой замены, то пишите.
Возможно, позже это как-то аукнется, но пока полёт нормальный. Если есть какие то опасения по поводу такой замены, то пишите.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.