Как в TicketLatest (посл тикет) вывести [[+stars]]
Как в TicketLatest (последние тикеты) вывести плэйсхолдер [[+stars]], как в сниппете TicketMeta?
Задача просто в шаблон вывода последних тикетов добавить кол-во просмотров и кол-во звезд (подписчиков).
Спасибо!
Задача просто в шаблон вывода последних тикетов добавить кол-во просмотров и кол-во звезд (подписчиков).
Спасибо!
Комментарии: 14
Сам разобрался, это работает [[+section.properties.ratings.star_ticket]]
Может быть есть еще более изящные варианты?
Может быть есть еще более изящные варианты?
Нет. Не то я вывел себе =)
Видимо не подкючена таблица tickets_stars. Как это сделать?
Видимо не подкючена таблица tickets_stars. Как это сделать?
Никто не знает?
Надо присоединить таблицу звёздочек и посчитать их количество у каждого тикета. По-моему, как-то так, но надо смотреть showLog и править, если что не так…
[[!TicketLatest?
...
&leftJoin=`{
"Star":{ "class":"TicketStar", "on":"Star.id = Ticket.id AND Star.class = 'Ticket'" }
}`
&select=`{
"Star": "COUNT(*) as stars"
}`
]]
Илья, спасибо большое)
Чуток подправил, вышло так, работает:
Чуток подправил, вышло так, работает:
[[!TicketLatest?
&limit=`5`
&fastMode=`1`
&action=`tickets`
&tpl=`TPL.cp.Tickets.ticket.latest`
&leftJoin=`{
"Star":{ "class":"TicketStar", "on":"Star.id = Ticket.id AND Star.class = 'Ticket'" }
}`
&select=`{
"Star": "owner as stars"
}`
]]
Не, так неправильно — это он выведет id одного из пользователей, добавивших тикет в избранное. Нужен именно COUNT. Попробуй так
&select=`{
"Star": "COUNT(id) as stars"
}`
В самом сниппете getTickets вот так прописано
&select=`{
"Star": "COUNT(Star.id) as stars"
}`
Вот блин. Смотрю в таблицу yadi.sk/i/2cNGDRjjo7Joc
Вижу нужные значения, у двух тикетов по одной звезде, у остальных по нулю, еще думаю, почему это поле странно называется так владельцем… =))) Совпадение.
Еще раз спасибо!
Вижу нужные значения, у двух тикетов по одной звезде, у остальных по нулю, еще думаю, почему это поле странно называется так владельцем… =))) Совпадение.
Еще раз спасибо!
Хах… я тоже тупанул)))
Пользователь — это createdby, вроде, а owner — это id тикета. Значит JOIN надо так писать:
Пользователь — это createdby, вроде, а owner — это id тикета. Значит JOIN надо так писать:
[[!TicketLatest?
&limit=`5`
&fastMode=`1`
&action=`tickets`
&tpl=`TPL.cp.Tickets.ticket.latest`
&leftJoin=`{
"Star":{ "class":"TicketStar", "on":"Star.owner = Ticket.id AND Star.class = 'Ticket'" }
}`
&select=`{
"Star": "COUNT(Star.id) as stars"
}`
]]
Так. Стоп)
Сейчас по нулям.
owner всё же не id тикета =)
Что же это за owner?
Сейчас разберусь…
В общем столбец OWNER в таблице звёзд — это точно не ID тикета.
Это что-то с автором связано.
createdBy — это ID modUser.
А вот столбец ID (первый) — это и есть ID тикета
Так что окончательный вариант, рабочий:
Сейчас по нулям.
owner всё же не id тикета =)
Что же это за owner?
Сейчас разберусь…
В общем столбец OWNER в таблице звёзд — это точно не ID тикета.
Это что-то с автором связано.
createdBy — это ID modUser.
А вот столбец ID (первый) — это и есть ID тикета
Так что окончательный вариант, рабочий:
[[!TicketLatest?
&limit=`5`
&fastMode=`1`
&action=`tickets`
&tpl=`TPL.cp.Tickets.ticket.latest`
&leftJoin=`{
"Star":{
"class":"TicketStar",
"on":"Star.id = Ticket.id AND Star.class = 'Ticket'"
}
}`
&select=`{
"Star": "COUNT(Star.id) as stars"
}`
]]
Дам-с =)))
Последний общий вопрос.
Где вообще смотреть классы? =)
Вот откуда ты узнал, что таблице звёзд — это класс TicketStar?
Где-то в исходниках?
Где вообще смотреть классы? =)
Вот откуда ты узнал, что таблице звёзд — это класс TicketStar?
Где-то в исходниках?
Вообще этот класс я в тикеты добавлял bezumkin.ru/sections/components/2951/
А так, да, классы в исходниках надо смотреть. Я на гитхабе обычно смотрю — там удобно по папкам лазить
А так, да, классы в исходниках надо смотреть. Я на гитхабе обычно смотрю — там удобно по папкам лазить
Спасибо)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.