Сегодня к вашему вниманию небольшой ливхак. Он правда на уровне хардкодинга, но для индивидуальных проектов вполне годится. В общем, статья — просто на заметку.
К примеру, такая задача: надо в дереве ресурсов видеть сразу в названии какие-нибудь флаги (например, что товар является новинкой). Да, я знаю, что все это можно сделать в групповом табличном редакторе, но все же. Итак, у документа-товара есть TV-параметр, определяющий новинка или нет. Все, что нам надо при построении дерева документов, это получить значение TV-поля, и если товар — новинка, то меняем заголовок. Для этого в класс документа (в нашем случае это ShopmodxResourceProduct) прописываем:
public function prepareTreeNode(array $node = array()) {
$node = parent::prepareTreeNode($node);
if(
$this->getTVValue(11) // Здесь само собой id вашего ТВ-поля
)
{
$node['text'] = "<span style='color:green;'>New!</span> {$node['text']}";
}
return $node;
}
Все. Этот метод будет вызван в процессоре, обрабатывающем запросы на получение документов для дерева. Результат:
?