Сложное дерево с неогрниченным числом потомков

kseen

Новичок
Сложное дерево с неогрниченным числом потомков

Здарвствуйте! Подскажите, пожалуйста, как можно сделать неограниченное вложение потомков от родителей в дереве с помощью средств Smarty. Чтобы было понятнее:
у меня есть дерево такого вида

Родитель
|
|
|
Потомок1
|
|--- Потомок1-1
|--- Потомок1-2
| |
| |
| |
| Потомок1-2-1
|
Потомок2
|
|
|
Потомок3
|
|
|
...

Условие: кол-во потомков должно быть неограниченно, то есть сколько есть, столько и должно отображаться
Как я понял одним использованием {foreach}'ов проблему не решить.
Заранее спасибо
 

Фанат

oncle terrible
Команда форума
использованием {foreach}'ей проблему решить элементарно - всего лишь преобразовав сложное дерево в одномерный массив с помощью рекурсивной функции.

Но можно написать рекурсивную функцию и на смарти.
 

kseen

Новичок
Каким образом можно сохранить отношения родитель->потомок в одномерном массиве ?
 

Фанат

oncle terrible
Команда форума
а зачем тебе их сохранять?
тебе шашечки или ехать?
отношения сохранить, или некий хтмл вывести?
 

kseen

Новичок
хтмл вывести надо, причем незная, сколько там потомков у каждого родителя
 

Фанат

oncle terrible
Команда форума
это ты к чему написал? ты думаешь, я не знаю, что тебе надо?
спасибо, я догадался.
позаботься лучше о себе. и спроси что-нибудь осмысленное.
если ещё вопросы остались
 

kseen

Новичок
Проблема решена путем рекурсии. Массив генерируется на php, в смарти же выводится с помощью {foreach}'a и нескольких {if}'ов
 

Фанат

oncle terrible
Команда форума
а, значит, второй способ.
Ну и правильно.
я тоже к нему склоняюсь. ни к чему рекурсией шаблон перегружать

вот только массив у меня получился чуть сложнее, чем хотелось бы - с фиктивными элементами, чтобы </ul> закрывать.
А если у тебя так палочками и выводится, то так, конечно, проще.
 
Сверху