Вывод последнего комментария к тикету
        Выводим последний коммент с тикету.
У меня выводится последний коммент «верхнего» уровня, т.е. только коммент а не коммент к комменту…Господи что я пишу
Если нужно выводить именно последний комент, меняем parent => 0 на 1
Топаем в сниппет getTickets, ищем 182 строку
После нее вставляем:
В tpl.Tickets.list.row вставляем плейсхолдер
    
    
                                                                                
            У меня выводится последний коммент «верхнего» уровня, т.е. только коммент а не коммент к комменту…
Если нужно выводить именно последний комент, меняем parent => 0 на 1
Топаем в сниппет getTickets, ищем 182 строку
// Special fields for quick placeholdersПосле нее вставляем:
$c = $modx->newQuery('TicketComment');
$c->where(array('thread' => $row['thread'], 'parent' => 0));
$c->sortby('id','DESC');
$ticket_comments = $modx->getIterator('TicketComment',$c);
foreach($ticket_comments as $last_ticket_comment){ 
	$row['last_comment'] = $last_ticket_comment->text;
	break;
}В tpl.Tickets.list.row вставляем плейсхолдер
[[+last_comment]]    Комментарии: 12
                Как то странно запускать итератор, чобы выбрать только один результат. Также неясно, зачем менять getTickets, если можно использовать &prepareSnippet для подготовки строки?
Сниппет lastComment:
Единственная возможная проблема, это если в массив ресурса попадёт что-то некорректное, что не пройдёт нормально конвертацию в JSON. Тогда можно попробовать:
                    [[!getTickets?
	&parents=`0`
	&prepareSnippet=`lastComment`
]]Сниппет lastComment:
<?php
$comment = $pdoFetch->getArray('TicketComment',
	array('parent' => 0),
	array(
		'innerJoin' => array(
			'Thread' => array(
				'class' => 'TicketThread',
				'on' => 'TicketComment.thread = Thread.id AND Thread.resource = ' . $row['id'])
		),
		'select' => 'text',
		'sortdir' => 'DESC'
	)	
);
$row['last_comment'] = !empty($comment)
	? $comment['text']
	: '';
	
return json_encode($row);Это должно работать быстрее. Единственная возможная проблема, это если в массив ресурса попадёт что-то некорректное, что не пройдёт нормально конвертацию в JSON. Тогда можно попробовать:
return serialize($row);            
                Решений к сожалению не нашел, то что ваше лучше не спорю. Спасибо!            
                    [2014-12-02 12:43:38] (ERROR @ /index.php) [pdoTools] Could not load collection of "TicketComment": Error 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `TicketComment`.`parent` = 0 ORDER BY TicketComment.id DESC LIMIT 1' at line 1            
                Скопипастил из комментария, запустил — всё работает.            
                    
                Убираю &prepareSnippet=`lastComment`- в логе пусто. 
p.s. вызываю через m2filter
                    p.s. вызываю через m2filter
                Еще вопрос: как сортировать запись такого типа (картинки, по айди)?
                    $preview = $pdoFetch->getObject('Ticket', $row['id'], array(
			'leftJoin' => array(
				'Preview' => array('class' => 'TicketFile', 'on' => '`Preview`.`parent` = `Ticket`.`id`'),
			),
			'select' => array(
				'Preview' => '`Preview`.`thumb` as `preview`', 
			)
));
$row = array_merge($row, $preview);
return json_encode($row);Сделал по аналогии с $additional_fields.            
                Василий, вопрос не по теме — как pdoParser активировать, если при установке pdoTools снимал галку?            
                    
                Нажать кнопку «Переустановить» рядом с пакетом и заново выбрать эту галочку? =)
Вообще должна быть системная настройка специальная, но что-то сходу я её не нашёл, поэтому переустановка — 100% вариант.
                    Вообще должна быть системная настройка специальная, но что-то сходу я её не нашёл, поэтому переустановка — 100% вариант.
                Просто переустанови пакет.            
                    
                Спасибо, думал системные настройки вернуть, но не нашел путей.            
                    
                Ваш вариант почему-то не работает с &limit, белый экран, лог пустой
                    [[!mFilter2? 
			  &element=`getTickets` 
			  &parents=`3` 
			  &includeTVs=`address,coords,phone` 
			  &limit=`5`
                          &prepareSnippet=`TicketExtended` 
			  &suggestions=`0`
			  &filters=`
				  tv|services_services:default
			  ` 
			  &tpl=`tpl.Tickets.list.row` 
		  ]]            
                вернулся к этому вопросу, почему не работает сортировка?
в базе 2 комента с id, 50 и 51. Выводит 50й
                    в базе 2 комента с id, 50 и 51. Выводит 50й
$pdoFetch->getObject('Ticket', $row['id'], array(
			'leftJoin' => array(
				'LastComment' => array('class' => 'TicketComment', 'on' => '`LastComment`.`thread` = '.$row['thread']),
			),
			'select' => array(
				'LastComment' => '`LastComment`.`raw` as `last_comment`',
			),
			'sortby' => array(
				'LastComment' => '`LastComment`.`id`',
			),
			'sortdir' => array(
				'LastComment' => 'ASC',
			),
			'groupby' => $class.'.id'
		));            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.