Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
firesanek 05.10.2006 16:36
сейчас еще раз все внимательно поизучал.. получилось вот что.@shTree[id;data] <script type="text/javascript"> function displaySubTree(num, level, hide) { var el = document.all["subtree_" + num]; var img = document.all["bullet_" + num]; if (el.style.display == "none") el.style.display = "block"; else el.style.display = "none"; img.src = "/img$Site:LangImagePrfix/admin/b_" + level + ((el.style.display == "none")?"_off":"_on") + hide + ".gif"; } </script> $LevelNum(1) $NodeNum(0) ^if($data.N){ ^shTreeLevelN[$id;^data.N.junction[]] }{ ^shTreeLevel[$id;^data.$LevelNum.junction[]] } @shTreeLevel[id;leveldata] ^leveldata.menu{ # ^throw[a;=$leveldata=] $title[^data.$LevelNum.show[$leveldata]] ^NodeNum.inc[] ^LevelNum.inc[] и т.д.т.е. data я получаю в shTree, а затем в shTreeLevel передаю тот же data, но лишь одно поле из него: junction.
это: ^data.$LevelNum.show[$leveldata] все таки вызов метода. в поле хеша show кладется junction, т.е. указатель на код (в вашем случае не метод).получается что то что написано тут (создание хеша и заполнение поля show):
^if(def $Types){ ^shTree[^if($IdPresent){$Id}; $.1[ $.junction[$getTypes] $.show[$shTypeItem] ] $.2[ $.junction[$getYears] ^rem{ функция получения данных для соответствующего уровня} $.args[id] ^rem{ параметры функции, описанной выше } $.show[$shYearItem] ^rem{ функция вывода текста элемента дерева } $.current[$.id[$CurVal.type]] ^rem{ значение аргументов для текущего (выделенного пользователем) узла } ] $.3[ $.junction[$getMonths] $.args[type,year] $.show[$shMonthItem] $.current[$.type[$CurVal.type] $.year[$CurVal.year]] ] $.4[ $.junction[$getNewsHeads] ^rem{ на последнем уровне у этой функции всегда должно быть в результате поле id } $.args[type,year,month] $.show[$shNewsItem] $.current[$.type[$CurVal.type] $.year[$CurVal.year] $.month[$CurVal.month]] ] ] }{ ^shTree[^if($IdPresent){$Id}; $.1[ $.junction[$getYears] $.show[$shYearItem] ] $.2[ $.junction[$getMonths] $.args[year] $.show[$shMonthItem] $.current[$.year[$CurVal.year]] ] $.3[ $.junction[$getNewsHeads] ^rem{ на последнем уровне у этой функции всегда должно быть в результате поле id } $.args[year,month] $.show[$shNewsItem] $.current[$.year[$CurVal.year] $.month[$CurVal.month]] ] ] }ненужно?