Используется для вывода деревьев.
В любом месте MACRO шаблона.
{{tree using='some_var' kids_prop='kids_property_name' [as='item_var_name'] [counter='counter_var_name']}} ...some content {{/list}}
Любые дочерние теги, такие как тег {{tree:node}}, тег {{tree:empty}}, тег {{tree:nextlevel}} которые определяют, как будет выводиться дерево, а также теги разметки и любой другой текст.
Задача: Взять дерево комментариев из переменной $comments_tree, определенной глобально в шаблоне, и вывести его в виде вложенных друг в друга ненумерованных списков. Если ни одного комментария нет, то вывести сообщение - «Комментарии отсуствуют». Каждый комментарий должен быть пронумерован по всем уровням дерева.
{{tree using="$#comments_tree" as="$comment" kids_prop="childs" counter="$counter" prefix="1"}} <ul> {{tree:node}} <li> {$prefix}.{$counter}){$comment.title} {{tree:nextlevel prefix="$new_prefix"}}<?php $new_prefix = $prefix . "." . $counter; ?>{{/tree:nextlevel}} </li> {{/tree:node}} {{tree:empty}} Комментарии отсуствуют {{/tree:empty}} </ul> {{/tree}}
Результат:
<ul> <li>1.1)foo</li> <li>1.2)bar <ul> <li>1.2.1)bar1</li> <li>1.2.2)bar2</li> </ul> </li> <li>1.3)hey</li> </ul>
Обратите внимание, что если в дереве нет ни одного узла, то выводится только содержимое empty (теги <ul> и </ul> не будут выведены)
Обсуждение