Как правильно вывести данные через 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]].Но на странице не выводится. Что я делаю неправильно? Подскажите пожалуйста.
Комментарии: 8
Никто не поможет?
Если честно, не совсем понимаю, зачем так заморачиваться, если у сниппетов pdoTools есть параметр where?
А вообще, если сниппет ничего не возвращает, то всегда можно воспользоваться параметром &showLog=`1` чтобы наглядно увидеть, на каком этапе появляется ошибка.
[[!pdoPage?
&parents=`0`
&tpl=`user_tickets`
&limit=`10`
&ajaxMode=`1`
&where=`{"createdby": [[!+modx.user.id]]}`
]]
Всего: [[+total]]
А вообще, если сниппет ничего не возвращает, то всегда можно воспользоваться параметром &showLog=`1` чтобы наглядно увидеть, на каком этапе появляется ошибка.
Не работает так тоже(
А вы вообще авторизованы в системе? — плейсхолдер [[!+modx.user.id]] возвращает что-нибудь? И есть ли у авторизованного пользователя созданные ресурсы?
К слову, если вам нужно вернуть список ресурсов конкретного пользователя (не авторизованного), то вам нужно обращаться на страницу с гет-параметром (пример: site.ru/articles?author=1), перехватывать этот параметр и по аналогии заносить в where.
К слову, если вам нужно вернуть список ресурсов конкретного пользователя (не авторизованного), то вам нужно обращаться на страницу с гет-параметром (пример: site.ru/articles?author=1), перехватывать этот параметр и по аналогии заносить в where.
Да, авторизован конечно)
Вот лог самой ошибки:
Вот лог самой ошибки:
.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
Странно, только что проверил приложенный мной вызов на своем сайте — ресурсы возвращаются корректно:
[[!pdoPage?
&parents=`0`
&tpl=`@INLINE [[+pagetitle]]`
&limit=`10`
&ajaxMode=`1`
&where=`{"createdby": [[!+modx.user.id]]}`
]]
Всего: [[+total]]
Вы ведь убрали все лишние строчки &element=`GetUserAction` и тому подобные?
Да, убрал. Я послал приглашение в скайп. Готов заплатить за решение этой проблемы)
Ошибка, вместо $q должен быть $c
Поэтому, видимо и не выводилось.
Поэтому, видимо и не выводилось.
$c = $modx->newQuery("modResource");
$c-> where(array('createdby'=>$userid));
$modx->setPlaceholder($totalVar, $modx->getCount('modResource', $q));
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.