Инструменты пользователя

Инструменты сайта


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 (внешнее изменение)