Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Артём 02.02.2003 16:55 / 02.02.2003 16:58
для себя щас пытаюсь опнять как это работает. Почти все понял, кроме# работа с URI - формирование списка всех URI сайта @CLASS uri ####### # конструктор @init[] $items[^table::create{id parent_id dir title 1 0 hardware Железо 11 1 computers Компьютеры 12 1 printers Принтеры 121 12 laser Лазерные 122 12 ink Струйные 2 0 software Программное обеспечение 21 2 os Операционные системы 22 2 editors Текстовые редакторы 3 0 news Новости}] # входная таблица разделов $self.items[$items] # создание хэша из таблицы для ускорения поиска $items_hash[^items.hash[id]] ####### # форм. таблицы соответствий uri для всех разделов сайта @get_all_site_uri[][uri] $result[^table::create{uri id title}] $uri{^if(def $items_hash.[$items.id].url){$items_hash.[$items.id].url}{^get_uri[$items.id]}} ^items.menu{ ^result.append{$uri $items.id $items.title} } ####### # получение uri раздела по заданному id @get_uri[id][parent_id;uri] $parent_id($id) ^while($parent_id){ ^if($items_hash.[$parent_id]){ $uri[$items_hash.[$parent_id].dir/$uri] $items_hash.[$id].url[$uri] $parent_id($items_hash.[$parent_id].parent_id) }{ $parent_id(0) } } $result[/$uri] @show_uri[] $site[^get_all_site_uri[]] <table border=1 cellspacing=0> ^site.menu{ <tr> <td class=defont>$site.uri</td> <td class=defont>$site.id</td> <td class=defont>$site.title</td> </tr> } </table>не могу понять, почему в функции @get_all_site_uri[][uri]
$uri{^if(def $items_hash.[$items.id].url){$items_hash.[$items.id].url}{^get_uri[$items.id]}} ^items.menu{ ^result.append{$uri $items.id $items.title} }переменная
$uriопределяется не в ^items.menu
@get_all_site_uri[][uri] $result[^table::create{uri id title}] ^items.menu{ $uri{^if(def $items_hash.[$items.id].url){$items_hash.[$items.id].url}{^get_uri[$items.id]}} ^result.append{$uri $items.id $items.title} }самое странное, что так пробую - результат тот же. Кто нибудь объясните почему так???