К содержанию

Не получается вывести количество комментариев

Привет сообщество, с помощью pdoResources пытаюсь вывести количество просмотров и комментариев. Просмотры вывести получилось, а вот комментарии никак не осилю, что-то делаю не так. Вот собственно вывод pdoResources:
[[!pdoPage? 
  &element=`pdoResources` 
  &loadModels=`tickets`
  &showLog=`1`
  &limit=`10` 
  &sortby=`createdon` 
  &sortdir=`desc` 
  &parents=`11` 
  &includeTVs=`newsImage`
  &tpl=`news__item_img` 
  &where=`{ "template":3 }`
  &leftJoin=`{
        "View": {
          "class":"TicketView",
          "alias":"View", 
          "on": "modResource.id = View.parent"
        },
        "Comment": {
          "class":"TicketComment",
          "alias":"Comment", 
          "on": "modResource.id = Comment.thread"
        }
      }`
  &select=`{
		"modResource": "*",
		"View": "COUNT(View.parent) as views",
		"Comment": "COUNT(Comment.thread) as comments"
	}`
  &tplPageWrapper=`@INLINE <ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>`
  &cache=`1`
  &sortby=`views`
  &groupby=`modResource.id`
  
]]
Плейсхолдер comments выдает везде 0. Прошу подсказать что делаю не так
Дмитрий Кондаков
Дмитрий Кондаков
28 июля 2015, 10:05
modx.pro
2 166
Реклама

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

Максим Кузнецов
Максим Кузнецов Проверенный
28 июля 2015, 13:11
Если не критично через leftjoin'ы, то можно так внутри чанка:
[[!TicketCommentsCount:default=`0`? &id=`[[+id]]`]]
    Дмитрий Кондаков
    28 июля 2015, 13:14
    Сниппетом не проблема, хочу научиться именно джоином
    Василий Наумкин
    Василий Наумкин Администратор
    28 июля 2015, 13:16
    Нужно джойнить TicketThread, а там уже есть количество активных комментов.

    Делать как делаешь ты сейчас очень медленно.
      Дмитрий Кондаков
      28 июля 2015, 13:30
      Спасибо за подсказку, получилось. Если кому понадобится вот джоины:
      &leftJoin=`{
              "View": {
                "class":"TicketView",
                "alias":"View", 
                "on": "modResource.id = View.parent"
              },
              "Thread": {
                "class":"TicketThread",
                "alias":"Thread", 
                "on": "modResource.id = Thread.resource"
              }
            }`
        &select=`{
      		"modResource": "*",
      		"View": "COUNT(View.parent) as views",
      		"Thread": "comments"
      	}`
      По скорости да, предполагаю что будет медленно с большим количеством ресурсов и комментариев, но пока особо не ощутимо. Мне главное сейчас было научиться и понять как это работает)
      Кстати а как быстрее? Выводить своим сниппетом в чанке?
        Василий Наумкин
        Василий Наумкин Администратор
        28 июля 2015, 13:52
        Вот так, как раз, будет быстро — здесь к каждому ресурсу цепляется только одна ветка.

        Но тормоза могут быть из-за просмотров, если их будет много.
          Дмитрий Кондаков
          28 июля 2015, 14:20
          Понятно, и можно будет как-то оптимизировать при росте просмотров?
            Василий Наумкин
            Василий Наумкин Администратор
            28 июля 2015, 15:25
            Быстрее всего будет вызывать отдельный сниппет в чанке, который вернёт сумму просмотров.

            Только мне не ясно, нафига это всё вообще делать, если есть сниппет getTickets? Он выводит и комменты и просмотры и всё, что угодно, касающееся тикетов.
        Алексей
        Алексей Старожил
        03 мая 2016, 12:07
        Здравствуйте. Воспользовался вашим вариантом, но все плейсхолдеры в tpl перестали работать. Не подскажете, в чём проблема? modx.pro/help/8673/
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      10