limb3:ru:packages:macro:tags:tree_tags:tree_tag
Содержание
Тег {{tree}}
Описание
Используется для вывода деревьев.
Область применения
В любом месте MACRO шаблона.
Синтаксис
{{tree using='some_var' kids_prop='kids_property_name' [as='item_var_name'] [counter='counter_var_name']}}
...some content
{{/list}}
- using - переменная, содержимое которой будет выводиться в виде дерева. Массив или итератор
- kids_prop - имя свойства узла (элемента), в котором находятся его дочерние узлы
- as - название переменной, которой будет присваиваться текщий узел дерева. По-умолчанию имеет значение $item
- counter - название переменной, в которой будет храниться номер выводимого узла, среди узлов одного родителя
Содержимое
Любые дочерние теги, такие как тег {{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> не будут выведены)
limb3/ru/packages/macro/tags/tree_tags/tree_tag.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1

Обсуждение