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]]
Выдает пустоту, я делаю что-то не так?

Или есть какой-то другой вариант?
Константин Ильин
03 марта 2015, 20:03
modx.pro
2 329
0

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

Константин Ильин
03 марта 2015, 23:11
0
Забыл, еще вопрос
Как вывести только те тикеты у которых 0 комментариев?
    Василий Наумкин
    03 марта 2015, 23:47
    0
    Выдает пустоту, я делаю что-то не так?
    Не используешь showLog для отладки.
      Константин Ильин
      03 марта 2015, 23:50
      0
      В логах ошибка

      [pdoTools] Error 42S22: Unknown column 'Thread.id' in 'on clause'
        Константин Ильин
        09 марта 2015, 13:15
        0
        Подскажите пожалуйста ребята
          Василий Наумкин
          09 марта 2015, 14:45
          1
          0
          Ты подключаешь комменты к ветке, а саму ветку не подключаешь — об этом и ошибка.
          [[!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`
          ]]
            Константин Ильин
            09 марта 2015, 17:22
            0
            действительно ведь это leftJoin…
            заработало
            Спасибо Василий, спасибо вам за ваши труды!
              Asert
              05 апреля 2015, 23:15
              0
              Подскажи пожалуйста, а как с помощью pdoRwsources вывести тоже самое. У меня комменты подключены к документам простым, необходимо отсортировать по количеству комментов.
                Asert
                06 апреля 2015, 07:17
                0
                Сейчас вывожу по примеру выше используя 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
                Подскажите кто знает как вывести?
                  Сергей Шлоков
                  06 апреля 2015, 08:18
                  0
                  В логе указана ошибка.
                  #1054: Unknown column 'modResources.id' in 'on clause'
                  Поэтому и не выводит. Как правильно указано в запросе
                  ... FROM `modx_site_content` AS `modResource`...
                    Asert
                    06 апреля 2015, 08:27
                    -1
                    Это я вижу, вот как сделать что бы выводило статьи лучше скажи.
        Asert
        06 апреля 2015, 14:23
        0
        Вызываю так
        [[!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
        Помогите пожалуйста.
          Сергей Шлоков
          06 апреля 2015, 16:33
          0
          Должна быть группировка.
            Asert
            06 апреля 2015, 17:05
            0
            НЕ понял, объясните пожалуйста.
              Сергей Шлоков
              06 апреля 2015, 18:08
              0
              Читай документацию, там хорошо объясняется. И про GROUP BY
                Asert
                06 апреля 2015, 18:21
                -2
                неужели так трудно показать что не так сделал и как правильно чем посылать куда то. Документацию обязательно посмотрю, только проще будет разобраться когда буду знать что не так указал.
          Asert
          06 апреля 2015, 21:33
          0
          Помогите кто нибудь. Очень надо. Не могу самостоятельно разобраться.
            Николай Загумённов
            26 мая 2016, 11:31
            1
            0
            В 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`
            ]]
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              17