Yurik
/dev/null
Рекурсивное заполнение шаблона из дерева
Есть простейший шаблон (для пример php-templates)
<tmpl:list>
<ul>
<tmpl:item><li>{title}</li></tmpl:item>
{subtree}
</ul>
</tmpl:list>
Есть простейшее дерево в БД
id | ref | title
Как вывести (оптимально) всё дерево в шаблон, т.е. чтобы в /list/subtree вставился /list но уже дочерних элементов и т.д. рекурсивно
-~{}~ 27.07.04 14:49:
И как теперь по этому $tree[ref][id] пройтись и пихнуть в шаблон?
-~{}~ 27.07.04 15:37:
Короче по ходу получается что все современные движки (php-templates, Smarty) не поддерживают рекурсивного заполнения, т.к. смена/итерация контекста безвозвратна.
Надо для каждого вложенного узла делать tmpl_load/open и плодить instance шаблона а это изврат редкий.
Есть простейший шаблон (для пример php-templates)
<tmpl:list>
<ul>
<tmpl:item><li>{title}</li></tmpl:item>
{subtree}
</ul>
</tmpl:list>
Есть простейшее дерево в БД
id | ref | title
Как вывести (оптимально) всё дерево в шаблон, т.е. чтобы в /list/subtree вставился /list но уже дочерних элементов и т.д. рекурсивно
-~{}~ 27.07.04 14:49:
PHP:
$sql="SELECT * FROM table ORDER BY ref, id";
$result=mysql_query($sql);
while ($row=mysql_fetch_assoc($result)){
$tree[$row['ref']][$row['id']]=$row['title'];
}
-~{}~ 27.07.04 15:37:
Короче по ходу получается что все современные движки (php-templates, Smarty) не поддерживают рекурсивного заполнения, т.к. смена/итерация контекста безвозвратна.
Надо для каждого вложенного узла делать tmpl_load/open и плодить instance шаблона а это изврат редкий.