Вывод списка авторов тикетов с количеством доков

Интересует возможность вывода наиболее активных авторов с количеством опубликованных ими заметок, например:

Вася Пупкин — 45
Коля Иванов — 12


Чтобы как-то мотивировать людей, наградить наиболее активных и пр. Может кто-то поделится наработками, к сожалению не могу позвастаться даже минимальными знаниями php чтобы самостоятельно написать сниппет такой, но подозреваю, что это возможно.

Например, популярные тикеты вывожу так:
[[!pdoPage?
	&element=`getTickets`
	&parents=`8`
	&leftJoin=`{"Vote":{"class":"TicketVote","on":"Ticket.id=Vote.id and Vote.class='Ticket'"}}`
	&select=`{"Ticket":"*", "Vote":"SUM(value) as rating"}`
	&groupby=`Ticket.id`
	&sortby=`rating`
	&sortdir=`desc`
	&tpl=`@INLINE <p>[[+idx]]. [[+pagetitle]] — <b>[[+rating]]</b></p>`
]]
Автора не помню, но респект ему и уважуха. Может по аналогии и с рейтингом пользователей что-то примитивное сделать можно?
Spirit_Ninja
13 октября 2015, 09:05
modx.pro
3
1 328
0

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

    Spirit_Ninja
    13 октября 2015, 15:49
    0
    Огонь!!! спасибо!)))
    Spirit_Ninja
    13 октября 2015, 15:56
    +1
    Для таких нубов как я, пишу более подробно конкретно по сабжу.

    Чтобы вывести список авторов с количеством опубликованных тикетов нужно:
    1. Обновить компонент Tickets из админки сайта
    2. Вставить вывод на сайте. Чтобы вставить нужные поля, смотрим лог при выводе

    [[!pdoUsers?
    	&innerJoin=`{"AuthorProfile":{"class":"TicketAuthor"}}`
    	&sortby=`AuthorProfile.rating`
    	&sortdir=`DESC`
    	&select=`{"AuthorProfile":"*"}`
    	&showLog=`1`
    ]]
    а потом выводим свой вариант. используя нужные поля. Вот как я выводил (решил оставить рейтинг, а не просто количество тикетов, как было в первоначальной задаче)
    [[!pdoUsers?
    	&innerJoin=`{"AuthorProfile":{"class":"TicketAuthor"}}`
    	&parents=`8,14`
    	&sortby=`AuthorProfile.rating`
    	&limit=`5`
    	&sortdir=`DESC`
    	&select=`{"AuthorProfile":"*"}`
    	&tpl=`@INLINE <p class="reiting">[[+idx]].<img src="[[+photo]]" class="img-reiting"/> [[+fullname]]  — <b>[[+rating]]</b><small> <i>(добавил [[+tickets]] групп)</i></small></p><div class="line"></div>`
    ]]
    Вот какая красота получилась :)

      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3