Как правильно вывести данные через PdoPage

Пытаюсь получить ресурсы, созданные пользователем через пагинацию.
Вывол сниппета такой:
<div class="rows">
  
	
        [[!pdoPage?
            &element=`GetUserAction`
            &parents=`0`
            &tpl=`profil_tickets`
            &userid=`[[!+modx.user.id]]`
            &limit=`10`
            &ajaxMode=`1`
        ]]
    </div>
    [[!+page.nav]
Сам сниппет GetUserAction:
$userid;
$output='';
$c = $modx->newQuery("modResource");
$c-> where(array('createdby'=>$userid));
$modx->setPlaceholder($totalVar, $modx->getCount('modResource', $q));


$c->limit($limit, $offset);
$q = $modx->getCollection('modResource',$c); // получаем весь список
 foreach($q as $row){
            $ticket[]= $row->toArray();
          
          
        $output.= $modx->getChunk('profil_tickets', $ticket);
          
        }
return $output;
В чанке вывожу [[+pagetitle]].
Но на странице не выводится. Что я делаю неправильно? Подскажите пожалуйста.
Сергей
07 октября 2015, 09:37
modx.pro
1 679
0

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

Сергей
07 октября 2015, 16:10
0
Никто не поможет?
    Максим Кузнецов
    07 октября 2015, 16:37
    +1
    Если честно, не совсем понимаю, зачем так заморачиваться, если у сниппетов pdoTools есть параметр where?
    [[!pdoPage?
    	&parents=`0`
    	&tpl=`user_tickets`
    	&limit=`10`
    	&ajaxMode=`1`
    	&where=`{"createdby": [[!+modx.user.id]]}`
    ]]
    Всего: [[+total]]

    А вообще, если сниппет ничего не возвращает, то всегда можно воспользоваться параметром &showLog=`1` чтобы наглядно увидеть, на каком этапе появляется ошибка.
      Сергей
      07 октября 2015, 16:42
      0
      Не работает так тоже(
        Максим Кузнецов
        07 октября 2015, 16:45
        +1
        А вы вообще авторизованы в системе? — плейсхолдер [[!+modx.user.id]] возвращает что-нибудь? И есть ли у авторизованного пользователя созданные ресурсы?

        К слову, если вам нужно вернуть список ресурсов конкретного пользователя (не авторизованного), то вам нужно обращаться на страницу с гет-параметром (пример: site.ru/articles?author=1), перехватывать этот параметр и по аналогии заносить в where.
          Сергей
          07 октября 2015, 16:45
          0
          Да, авторизован конечно)
          Вот лог самой ошибки:
          .0001860: Could not process query, error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 )  ORDER BY ' at line 1
            Максим Кузнецов
            07 октября 2015, 16:51
            +1
            Странно, только что проверил приложенный мной вызов на своем сайте — ресурсы возвращаются корректно:
            [[!pdoPage?
            	&parents=`0`
            	&tpl=`@INLINE [[+pagetitle]]`
            	&limit=`10`
            	&ajaxMode=`1`
            	&where=`{"createdby": [[!+modx.user.id]]}`
            ]]
            Всего: [[+total]]
            Вы ведь убрали все лишние строчки &element=`GetUserAction` и тому подобные?
              Сергей
              07 октября 2015, 16:53
              0
              Да, убрал. Я послал приглашение в скайп. Готов заплатить за решение этой проблемы)
                Кирилл Киселев
                26 октября 2018, 19:07
                0
                Ошибка, вместо $q должен быть $c
                Поэтому, видимо и не выводилось.
                $c = $modx->newQuery("modResource");
                $c-> where(array('createdby'=>$userid));
                $modx->setPlaceholder($totalVar, $modx->getCount('modResource', $q));
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8