Рекурсия на уровне подгрузки шаблолнов в Smarty

  • Автор темы Константин
  • Дата начала

Константин

Guest
Рекурсия на уровне подгрузки шаблолнов в Smarty

Есть ппроблема, необходимо отобразить часть дерева (страница представлена в виде иерархии элементов, различающихся вариантами отображения) на одной странице при помощи Smarty. Листы дерева могут иметь картинки, описания, названия. При этом они могут различаться формой представления данных, у какого-то может имя быть слева от картинки у другого справа, например. Данные для отображения представляют собой ассоциативный массив, в котором храниться отображаемая часть дерева со всей необходимой информацией про каждый лист. Попытался реализовать это , написав для каждого варианта отображения листа свой шаблон, запускающий для отображения своего потомка специфичный для него шаблон и передающий ему оставшуюся часть дерева (т.е. фактически рекурсия), и наткнулся на то что возможна ситуация, когда шаблон будет несколько раз рекурсивно запускать себя. При этом данные дерева естественно терялись.
Для организации рекурсии в Smarty требуется использование специализированных компонентов. К примеру, compiler.defun.php. Нормального описания этого компонента я не нашел. Вопрос в том, можно ли организовать с его помощью вышеописанный алгоритм.
 

alexhemp

Новичок
Константин

А не надо деревья выводить рекурсией. :)

Преобразуй древовидную структуру в массив. Задай понятие "оступ" и т.п. Выводи просто в цикле.
 
Сверху