Вывод количество комментариев Tickets
Сразу прошу извинения у Василия потому что я наверно достал тебя :)
Прикол получился в том, что Василий давал мне код:
У меня не так я проста на странице вывожу [[!TicketComments]]
Не как не получается сделать вывод кол-во комментариев вне сниплета на этой же странице где он подключен и при выводе документа через getResources
Единственный вариант который я нашёл как мне показалось самый нормальный это передавать данный в tv и сохранять их там
Прикол получился в том, что Василий давал мне код:
if ($res = $modx->getObject('Ticket',15)) {
echo $res->get('comments');
}Он работает замечательно если у ресурса «Тип документа» -> «Раздел тикетов»У меня не так я проста на странице вывожу [[!TicketComments]]
Не как не получается сделать вывод кол-во комментариев вне сниплета на этой же странице где он подключен и при выводе документа через getResources
Единственный вариант который я нашёл как мне показалось самый нормальный это передавать данный в tv и сохранять их там
Комментарии: 18
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
1. Создаю новую страницу, тип «Документ», шаблон — 0.
2. Вызываю там сниппет Test,
3. В сниппет пишу
4. Выводятся все поля ресурса, в конце
[hide_children_in_tree] => 0 [show_in_tree] => 0 [properties] => [comments] => 0 [views] => 2 [votes] => 0Должно работать именно так, везде.updated
После написания первого коммента проверил и $res->get('comments'); — всё окей, вывел уже единицу.
Если всё равно не работает — значит на твоём сайте уже чтото накручено, удаляй Tickets все версии и ставь последнюю, потом чисти кэш.
Как документ создавал, в смысле, ресурс? Если через Api — то нужно было указать верный class_key. При создании из админки или при помощи TicketForm — всё автоматом указывается.
Или ты просто вызываешь TicketComments на обычном ресурсе? Тогда конечно, таких полей не будет — ибо это фишка именно класса Ticket.
В этом случае можно получить кол-во комментов запросом в БД.
$id — идентификатор ресурса, на котором вызывался TicketComments.
Раздел тикетов — это контейнер для тикетов, класс TicketsSection.
Тикет — это дочерний ресурс контейнер, класс Ticket. Его можно создать только из страницы с типом TicketsSection в админке или сниппетом TicketForm на сайте.
Эти оба типа — расширенные классы, которые обладают особыми возможностями. Обычный ресурс так не умеет. В числе прочего — вывод кол-ва комментов. Причем, TicketsSection выведет сумму комментов для всех дочерних тикетов, а Ticket — только своих.
Если не хочешь создавать тикеты — то доставай кол-во комментов своим сниппетом, код запроса я тебе дал.
Проверь еще разок код отсюда.
Лучше так:
Теперь можно так:
Ветка создаётся при первом вызове TicketComments на странице и пишет себе в поле resource, где её вызвали. Так же там есть поля comment_last и comment_time — это id и время последнего комментария ветки (т.е. на странице).
Тоже пользую ticketcomments отдельно.
Подскажи, может что-то за это время поменялось?
[[!getComments? &id=`[[*id]]`]]