Вывод по условию в tpl-шаблонах

Во-первых, существует макрос %system ifClause()%, который позволяет вывести то или ионое строковое содержимое в зависимости от истинности передаваемого условия. Очень древний макрос и очень простой. Если вы уже обрадовались и представили как делаете ветвление с вывзовом того или иного макроса, то жестоко разочаруетесь. В лучшем случае можно вывести ту или иную строку (и, подозреваю, не содержащую запятых).

 

Гораздо более мощный инструмент - это шаблоны модуля data.

Для примера возьмем часто встречающуюся задачу вывести  картинку анонса к новости, если он есть, или картинку-заглушку.

Картинка у нас выводится макросом %data getProperty(%id%, 'anons_pic','anons_pic')%

Здесь первое  anons_pic - это имя поля, второе - имя шаблона в папке data.

Теперь в шаблоне anons_pic  находим блок, отвечающий за вывод изображения: 

$FORMS['img_file'] = <<<END
%system makeThumbnail(%filepath%, '70', '50', 'view')%
END;

Чтобы указать UMI.CMS что делать, если поле не заполнено, следует создать еще один блок, добавив к имени ключевое слово _empty, и указать в нем желаемое действие:

$FORMS['img_file_empty'] = <<<END
<img src="/sites/umicms/assets/gif/empty.jpg">
END;

Все просто.