| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
dima 30.08.2004 13:50
Прошу прощения за новый подобный тред, но тот, что я создавал ушел далеко вниз...id pid name 1 0 name_1 2 0 name_2 3 0 name_3 4 0 name_4 5 1 name_1_1 6 1 name_1_2 7 1 name_1_3 8 1 name_1_4 9 2 name_2_1 10 2 name_2_2 11 2 name_2_3 12 2 name_2_4 13 3 name_3_1 14 3 name_3_2 15 3 name_3_3 16 3 name_3_4 17 15 name_15_1 18 15 name_15_2 19 15 name_15_3из нее нужно сделать дерево:
@main[]
$tree[^table::load[tree.cfg]]
###############
@tree[parent_id][level]
$level[^tree.select($parent_id == $tree.pid)]
<ul>
^level.menu{
$id($form:id)
$parents[^hash::create[]]
$str_hash[^tree.hash[id]]
$pid($id)
^while($pid){
^parents.add[
$.[$pid][$pid]
]
$pid($str_hash.[$pid].pid)
}
^if($form:id == $level.id){
<li>$level.name</li>
}{
<li><a href="?id=$level.id">$level.name</a></li>
}
^if($parents.[$level.id]){
^tree[$level.id]
}
}
</ul>
################все работает как часы # это не тестовый код, вместо него, но по такому же алгоритму я # использую класс с такими параметрами: # 1. беру из базы таблицу # 2. делаю из нее хеш # 3. формирую все полные uri (в базе храняться без слешей и родительских путей) # 4. кладу это все в хеш и рекурсивно вызываюа проблема вот в чем, id родителей ищется по $form:id, это я делал для того, чтобы не создавть кучу папок.