Как выбрать ЛУЧШИЕ где комментов >= 10
Вывожу лучшие тикеты через mFilter2 с сортировкой по количеству комментариев примерно так (убрал всё лишнее чтобы не мешало):
Есть 2 вопроса:
1. Почему не срабатывает выражение
2. Как выбрать только те, у которых количество комментариев больше 10 не меняя направленность сортировки вывода?
===========================================>
UPD.: написал решение в отдельной статье.
===========================================>
{$_modx->runSnippet('!mFilter2', [
'element' => 'getTickets',
'sortdir' => 'DESC',
'sortby' => 'comments',
'leftJoin' => '{
"Thread":{ "class":"TicketThread","on":"Thread.resource=Ticket.id" },
"Comment":{ "class":"TicketComment","on":"Comment.thread=Thread.id AND Comment.parent = \'0\'" }
}',
'select' => '{
"Comment":"COUNT(DISTINCT Comment.id) as comments"
}',
])}Есть 2 вопроса:
1. Почему не срабатывает выражение
AND Comment.parent = \'0\'То есть выводится количество всех комментариев, а не только первого уровня как мне нужно.2. Как выбрать только те, у которых количество комментариев больше 10 не меняя направленность сортировки вывода?
===========================================>
UPD.: написал решение в отдельной статье.
===========================================>
Комментарии: 11
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Хотя сортировка по тому же полю срабатывает:
С таким подходом всё равно из базы выбираются все записи и невозможно указать количество тикетов для вывода (разве если не играться при каждой итерации с set|getPlaceholder устанавливая в них колчиество пропущенных тикетов и проверять их… Будет очень печально..)
Василий в &checkPermissions тоже проверяет всё это дело тоже после выборки bezumkin.ru/sections/components/1841/:
Получилось следующее:
А вот и ругань логов:
Как я понимаю от пытается выбрать колонку Ticket.comments, хотя comments является резлультатом подсчёта в select.
Но как тогда правильно подключить в вызове результат подсчёта и исходя из его значения делать выборку?
Получается сейчас у меня выбираются все (&limit=`0`) тикеты, а показываются только те что подпадают под условие в самом чанке, что не совсем производительно…
Принцип сейчас такой:
Перед вызовом сниппета:
В чанке:
После сниппета:
Но как решить проблему с пагинацией я ещё не представляю себе…
Вот только я пока не знаю в какую сторону копать?