Новости | 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-дерево