pdoPage + GalleryAlbums (Пагинация не работает)

Привет, пытаюсь сделать пагинацию спомощью pdoPage для альбомов приложения Gallery.

Вызываю:
[[!pdoPage? &element=`GalleryAlbums` &parent=`1` &limit=`8` &rowTpl=`Шаблон`]]
В итоге: альбомы получает, лимит на вывод работает, изображения из альбома показыает, пагинация выводиться.

Проблема: При переключении стараниц в пагинации, показываются теже самые восемь альбомов.
Сергей
23 января 2018, 21:53
modx.pro
2
1 914
0

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

Алексей Ерохин
24 января 2018, 10:57
1
+1
Думаю дело в том, что сниппет GalleryAlbums ожидает переменную start, а pdoPage дает offset, и они друг друга не понимают.
Переделать один или другой сниппет, либо написать свой, который на основании page будет считать start, ставить в плейсхолдер и вызывать pdoPage с параметром start с этим плейсхолдером
    Андрей
    24 января 2018, 12:07
    +1
    Попробуйте так
    {'!pdoPage' | snippet : [
        'loadModels' => 'gallery',
        'class' => 'galAlbum',
        'select' => [
            'galAlbum' => '*'
        ],
        'sortby' => 'id',
        'tpl' => '@INLINE {$name}'
    ];
      Сергей
      24 января 2018, 19:40
      0
      Вставляю ровно так, как написали — к сожалению не работает.
        Андрей
        24 января 2018, 20:11
        +1
        Если не используется fenom на страницах, то синтаксис обычный должен быть

        [[!pdoPage?
        	&loadModels=`gallery`
        	&class=`galAlbum`
        	&select=`{"galAlbum":"*"}`
        	&sortby=`id`
        	&tpl=`@INLINE [[+name]]`
        ]]

        Так же можете добавить параметр &showLog=`1` и посмотреть почему не работает.
          Сергей
          24 января 2018, 22:48
          0
          Спасибо! Так почти работает! Пока до fenom не дошли :)
          Не все параметры работают, например в шаблоне вывода альбомов, мне нужно вывести обложку, пишу:
          <img src="[[+image]]">
          , но результат пустой.
          Параметр [[+name]] — работает.
            Сергей
            24 января 2018, 23:24
            0
            Разобрался. Нашел в логах:
            Added selection of galAlbum: SQL_CALC_FOUND_ROWS `id`, `parent`, `name`, `year`, `description`, `createdon`, `createdby`, `rank`, `active`, `prominent`, `watermark`, `cover_filename`
            понял, что 'image' и не выбирает. Воспользовался `cover_filename`

            п.с. если у вас будет минутка, не могли бы вы объяснить почему с galAlbum не выбирается при запросе 'image', когда при обычном высове сниппета GalleryAlbums параметр 'image' работает?
              Сергей
              25 января 2018, 00:53
              0
              Еще пытаюсь применить параметр &parents, чтобы выбрать дочерний альбом для вывода. Все равно выводит все альбомы.
                Андрей
                25 января 2018, 08:26
                +1
                image формируется сниппетом GalleryAlbums, так что вам нужно просто указать в шаблоне
                <img src="/assets/gallery/[[+cover_filename]]">

                Если нужен какой-то определенный альбом используйте where
                &where=`{"galAlbum.parent" : "1"}`
                &where=`{"galAlbum.id" : "1"}`
                  Сергей
                  25 января 2018, 14:04
                  0
                  Спасибо большое за помощь! Все получилось. Я уже думал нельзя связать этих два дополнения :)
                  Работает: &where=`{«galAlbum.parent»: «1»}`
                  &where=`{«galAlbum.id»: «1»}` — показывает родительский альбом только.
                    Сергей
                    02 марта 2019, 15:36
                    0
                    Интересует решение поднятого в этой теме вопроса.
                    Можно увидеть конечный кусок кода генерирующий пагинацию для списка фотоальбомов?
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          10