Содержание

Тег {{tree}}

Описание

Используется для вывода деревьев.

Область применения

В любом месте 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> не будут выведены)