Адаптация getResourcesTag под pdoPage, ошибки...

Адаптирую getResourcesTag с pdoPage.




Всё нормально выводится, но возникла проблема с пагинацией…
Не пойму какой чанк нужен для оформления пагинации…

И не пойму как отладить, чтобы
узнать нужный чанк…
сайт: mka-pp.ru/blog/

[[!getResourcesTag? &element=`pdoResources` &includeTVs=`img,img2` &tpl=`blog_item` &limit=`5` &parents=`17,5,25` &showLog=`0` &showHidden=`0`]]
[[!+page.nav]]

вывожу текущим сниппетом

Главное пагинация сама работает частично

Работает первая страница и последняя страница, следующая и предыдущая.
Но не выводятся цифры. Выводится массив данных…
Кто подскажет куда копать в какую сторону?


Александр Москвин
23 ноября 2014, 16:57
modx.pro
2
3 032
0

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

Александр Москвин
23 ноября 2014, 23:59
0
Походу у pdoPage расширенный набор параметров для пагинации.
Нужно теперь ковырять в сторону этих данных…
Поставил пока pdoPage с пагинацией, можно через фильтр вывести поиск по тегам, но всё равно хочется разобраться с сниппетом getResourcesTag, чтобы использовать из коробки дополнение.
    Александр Москвин
    24 ноября 2014, 00:29
    0
    Надоело плюнул.
    Сделал так

    [[!pdoPage? &element=`pdoResources` &includeTVs=`img,img2` &tpl=`blog_item` &limit=`5` &parents=`17,5,25` &showLog=`0` &showHidden=`0` &tvFilters=`[[!getTag]]`]]
    Код getTag
    <?php
    
    if($_GET[tag]){
        $tag = 'tags==%'.$_GET[tag].'%';
    }
    
    
    return $tag;
      Игорь Зубенко
      24 ноября 2017, 13:13
      0
      Спасибо!
        Fullstack
        20 февраля 2021, 21:34
        0
        И привет, инъекция :)
        Лучше хотя бы так
        <?php
        
        if ($_GET['tag']) {
        	$tag = preg_replace('/[^A-Za-zА-Яа-яЁё0-9_\- ]+/ui', '', $_GET['tag']);
            $tag = 'tags==%' . $tag . '%';
        }
        
        return $tag;
        А так тут нет проверки на точность тега (надо учитывать точные значения между запятыми у тегов)
          Fullstack
          20 февраля 2021, 21:54
          0
          Для того, чтобы она была, надо убрать
          &tvFilters=`[[!getTag]]`
          и сделать
          &where=`["CONCAT(',', TVtags.value, ',') LIKE '%,[[!getTag]],%'"]`
          и добавить TV-поле с тегами (в данном примере tags) также в &includeTVs.

          А в моем обезопашенном сниппете getTag закомментировать эту строчку:
          // $tag = 'tags==%' . $tag . '%';
            Fullstack
            20 февраля 2021, 22:21
            0
            А, и для поддержки пробелов надо еще второе упоминание $_GET['tag'] заменить на
            str_replace('%20', ' ', $_GET['tag'])

            Получится вот такой сниппет:

            if ($_GET['tag']) {
            	$tag = preg_replace('/[^A-Za-zА-Яа-яЁё0-9_\- ]+/ui', '', str_replace('%20', ' ', $_GET['tag']));
                //$tag = 'tags==%' . $tag . '%';
            }
            
            return $tag;

            urldecode заранее не рекомендую.
        Александр
        20 августа 2021, 09:53
        1
        0
        Нужно всего лишь в getResourcesTag добавить действующие tpl от pdoPage, а именно, достаточно основных. Если чего-то не будет хватать, просто посмотрите $scriptProperties и добавьте по образцу.
        &pageNavTpl = `@INLINE <li class="page-item"><a class="page-link" href="[[+href]]">[[+pageNo]]</a></li>`
        &pageActiveTpl = `@INLINE <li class="page-item active"><a class="page-link" href="[[+href]]">[[+pageNo]]</a></li>`
          Сергей С.
          07 апреля 2022, 20:00
          0
          Позвольте пожать вам руку, это работает)

          Долго мучался, пытался запустить getResourcesTag + pdoPage + ajaxmode=`scroll`
          При прокрутке до конца подгрузка контента срабатывала один раз и всё.
          Не понимал, в какую сторону копать, вроде подгрузка работает, значит правильно указал параметры, но почему лишь однократно?

          Добавил вышеуказанные параметры — и о, чудо! Всё ок.
            Сергей С.
            07 апреля 2022, 20:19
            0
            Достаточно даже просто пустыми их указать в случае ajaxmode=`scroll`
            [[!getResourcesTag?
                &parents=`123`
                &hideContainers=`1`
                &grSnippet=`pdoPage`
                &element=`pdoResources`
                &tpl=`tpl.work`
                &pageNavTpl = ``
                &pageActiveTpl = ``
                &ajaxMode=`scroll`
                &ajaxElemRows=`#pdopage .work-container`
            ]]
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            9