Да, подкинули мне задачку на часик... Проблема MySQL в том, что нельзя выполнить сначала сортировку, а потом группировку. Можно только выполнить группировку, а в ней сортировка уже на воле Ктулху. В итоге приходится лепить подзапрос, в котором сортируешь или выборку максимальных делаешь. А такая задача в одном объекте xPDOQuery нереальна. Вот подзапросик добавил в процессор:
// Получаем последние комментарии из этих топиков if($this->getProperty('one_comment_per_thread')){ $ids = array(); $sub_query = $this->modx->newQuery($this->classKey); $sub_query->select(array( "max(id) as id", "thread_id", )); $sub_query->groupby('thread_id'); $s = $sub_query->prepare(); $s->execute(); while($row = $s->fetch(PDO::FETCH_ASSOC)){ $ids[] = $row['id']; } if($ids){ $query->where(array( "id:in" => $ids, )); } }
Сейчас выборка последних комментов по одному на диалоговую ветку. А вот верстка будет позже подправлена.