| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
mashi 06.12.2005 20:48 / 06.12.2005 20:53
Методы @get_uri[id] и @get_id[uri] работают не совсем оптимально.^use[tree.p]
# создаем дерево на основе табличных данных
$site[^tree::init[$objects][$.root_path[/] $.current_id[1]]]
# или так
$site[^tree::load[/objects.cfg][$.root_path[/]]] загружаем из файла
# или так
$site[^tree::create{1 0 products}[$.root_path[/]]] создаем в формате tab-delimited
# или так
$site[^tree::create[]] создаем пустой
# после создания дерева доступны поля:
# ITEM -- хеш текушего элемента дерева, который содержит все поля элемента (id, parent_id, path, full_path, name, sort_order, .... )
# Например, так можно получить поля текущего объекта:
$site.ITEM.full_path
$site.ITEM.parent_id
$site.ITEM.name
$site.ITEM.any_field
# ITEMS -- хэш всего дерева, который содержит хеши всех элементов.
# Например:
$site.ITEMS.[$id].full_path
$site.ITEMS.[$id].name
$site.ITEMS.[$id].any_field
# Методы
^has_children[id] -- возвращает "1" если у заданного элемента есть дети
^set_current_id[id] -- устанавливает текущий элемент дерева (после этого в ITEM есть все поля элемента)
^get_id[full_path] -- выдает id объекта по заданному full_path
^get_ancestors[$.id(2) $.with_self(1) $.start_from[root]] -- Метод выдает таблицу с номерами объектов-предков: от заданого (по умолчанию) до корневого или наоборот.
^delete_item[id] -- удаляет элемент и всех его потомков из дерева
^add_item[id;parent_id;path;additional_fields] -- добавляет элемент в дерево
^save[file_name] -- сохраняет дерево в текстовый файл в формате tab-delimited
^get_xml_map[$.map_tag_name[map] $.item_tag_name[item] $.from_id(0)] -- выдает xml-дерево