Tickets сортировка по количеству комментариев
Здравствуйте!
Пробую вот так:
Или есть какой-то другой вариант?
Пробую вот так:
<ul class="themes-list">
[[!pdoPage?
&element=`getTickets`
&parents=`48`
&sortdir=`DESC`
&sortby=`comments`
&select=`{"Comment":"COUNT(DISTINCT Comment.id) as comments"}`
&leftJoin=`{"Comment":{"class":"TicketComment","alias":"Comment","on":"Comment.thread=Thread.id"}}`
]]
</ul>
[[!+page.nav]]
Выдает пустоту, я делаю что-то не так?Или есть какой-то другой вариант?
Комментарии: 17
Забыл, еще вопрос
Как вывести только те тикеты у которых 0 комментариев?
Как вывести только те тикеты у которых 0 комментариев?
Выдает пустоту, я делаю что-то не так?Не используешь showLog для отладки.
В логах ошибка
[pdoTools] Error 42S22: Unknown column 'Thread.id' in 'on clause'
Подскажите пожалуйста ребята
Ты подключаешь комменты к ветке, а саму ветку не подключаешь — об этом и ошибка.
[[!getTickets?
&parents=`0`
&sortdir=`DESC`
&sortby=`comments`
&select=`{"Comment":"COUNT(DISTINCT Comment.id) as comments"}`
&leftJoin=`{
"Thread":{"class":"TicketThread","on":"Thread.resource=Ticket.id"},
"Comment":{"class":"TicketComment","on":"Comment.thread=Thread.id"}
}`
&showLog=`1`
]]
действительно ведь это leftJoin…
заработало
Спасибо Василий, спасибо вам за ваши труды!
заработало
Спасибо Василий, спасибо вам за ваши труды!
Подскажи пожалуйста, а как с помощью pdoRwsources вывести тоже самое. У меня комменты подключены к документам простым, необходимо отсортировать по количеству комментов.
Сейчас вывожу по примеру выше используя pdoresources
Лог такой
[[!pdoResources?
&parents=`2` &tpl=`news2_tpl` &hideContainers=`1`
&sortdir=`DESC`
&sortby=`comments`
&select=`{"Comment":"COUNT(DISTINCT Comment.id) as comments"}`
&leftJoin=`{
"Thread":{"class":"TicketThread","on":"Thread.resource=modResources.id"},
"Comment":{"class":"TicketComment","on":"Comment.thread=Thread.id"}
}`
&showLog=`1`
]]
Материалы в таком виде не выводит.Лог такой
0.0002480: pdoTools loaded
0.0000648: xPDO query object created
0.0175910: leftJoined TicketThread as Thread
0.0017850: leftJoined TicketComment as Comment
0.0000670: Added selection of TicketComment: SQL_CALC_FOUND_ROWS COUNT(DISTINCT Comment.id) as comments
0.0895710: Processed additional conditions
0.0927391: Added where condition: modResource.parent:IN(2,3,5), modResource.published=1, modResource.deleted=0, modResource.isfolder=0
0.0003419: Sorted by comments, DESC
0.0000072: Limited to 10, offset 0
0.0058579: SQL prepared "SELECT SQL_CALC_FOUND_ROWS COUNT(DISTINCT Comment.id) as comments FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_tickets_threads` `Thread` ON Thread.resource=modResources.id LEFT JOIN `modx_tickets_comments` `Comment` ON Comment.thread=Thread.id WHERE ( `modResource`.`parent` IN (2,3,5) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`isfolder` = 0 ) ORDER BY comments DESC LIMIT 10 "
0.0025761: Could not process query, error #1054: Unknown column 'modResources.id' in 'on clause'
0.1214600: Total time
27 787 264: Memory usage
Подскажите кто знает как вывести?
В логе указана ошибка.
#1054: Unknown column 'modResources.id' in 'on clause'
Поэтому и не выводит. Как правильно указано в запросе... FROM `modx_site_content` AS `modResource`...
Это я вижу, вот как сделать что бы выводило статьи лучше скажи.
Вызываю так
[[!pdoResources?
&parents=`2` &tpl=`news2_tpl` &hideContainers=`1`
&sortdir=`DESC`
&sortby=`comments`
&select=`{"Comment":"COUNT(DISTINCT Comment.id) as comments"}`
&leftJoin=`{
"Thread":{"class":"TicketThread","on":"Thread.resource=modResource.id"},
"Comment":{"class":"TicketComment","on":"Comment.thread=Thread.id"}
}`
&showLog=`1`
]]
Выдает такую ошибку0.0005779: SQL prepared "SELECT SQL_CALC_FOUND_ROWS COUNT(DISTINCT Comment.id) as comments FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_tickets_threads` `Thread` ON Thread.resource=modResource.id LEFT JOIN `modx_tickets_comments` `Comment` ON Comment.thread=Thread.id WHERE ( `modResource`.`parent` IN (2,3,5,4) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`isfolder` = 0 ) ORDER BY comments DESC LIMIT 10 "
0.0460150: SQL executed
Помогите пожалуйста.
Должна быть группировка.
НЕ понял, объясните пожалуйста.
Читай документацию, там хорошо объясняется. И про GROUP BY
неужели так трудно показать что не так сделал и как правильно чем посылать куда то. Документацию обязательно посмотрю, только проще будет разобраться когда буду знать что не так указал.
Помогите кто нибудь. Очень надо. Не могу самостоятельно разобраться.
В mFilter2 я попробовал так сортировать по количеству коментов, не знаю на сколько так правильно делать, вроде работает.
[[!mFilter2?
&parents=`5,6,7,8`
&class=`Ticket`
&element=`getTickets`
&sortAliases=`{ "ticket":"Ticket","vote":"TicketVote" }`
&sort=`ticket|createdon:desc,vote:desc,comms|comments:desc`
&limit=`6`
&tpl=`tpl.Post.row`
&includeTVs=`item_image`
&showLog=`1`
&leftJoin=`{
"Comms": {
"class": "TicketThread",
"on": "Ticket.id = Comms.resource"
}
}`
&select=`{
"Ticket": "*",
"Comms": "Comms.comments as comms"
}`
&groupby=`Ticket.id`
]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.