Повторяются результаты пагинации (GalleryAlbums + pdoPage)

Приветствую всех!

Необходимо вывести на странице по 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 никаких конфликтов нет.

Спасибо за внимание!
Иван
10 апреля 2023, 10:38
modx.pro
698
0

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

Тодор
10 апреля 2023, 14:45
+1
пробуй для обертки результатов добавить класс .rows
<div id="pdopage">
    <div class="posts-list posts-list--default one-right-sidebar rows">
        [[!pdoPage?
            ...    
        ]]
    </div>
    [[!+page.nav]]
</div>
    Иван
    10 апреля 2023, 17:59
    0
    Добавил класс .rows, но альбомы выводятся также (с ajax и без — одинаково). Зато это помогло в другом месте — там перестали дублироваться результаты (но это наблюдалось только с включенным ajax). Я думал, что достаточно указать любой класс в &ajaxElemRows, но видимо нужно использовать конкретно класс .rows.
    Иван
    13 апреля 2023, 13:25
    0
    Решил вернуться к этой проблеме и еще раз изучил пост на который я давал ссылку. Там человек вначале говорит умную мысль (https://modx.pro/help/14395#comment-93157), что возможно есть проблема в отличии переменных отвечающих за сдвиг результатов на странице, в pdo это offset, а в galleryalbums это start. Я не обратил на это внимание, поскольку в других сниппетах тоже эти переменные отличаются, но работает же как то. Я решил взять и тупо заменить переменные start на offset и всё заработало. Исправил файл /core/components/gallery/model/gallery/galalbum.class.php и сниппет GalleryAlbums в элементах.
    Возможно, позже это как-то аукнется, но пока полёт нормальный. Если есть какие то опасения по поводу такой замены, то пишите.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3