| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
agat 18.11.2002 16:32 / 18.11.2002 16:33
Это метод, при вызове которого формируется древовидная структура сайта, начиная с корневого каталога@getfiles[]
$dir[/]
$search[^file:list[$dir]]
^if($search){
^search.menu{
$str[$search.name]
#здесь мы говорим, чтобы выводились только .html файлы. Папки admin,classes и i считаются системными - их не выводим
^if(^str.match[\.html^$] || !^str.match[\.] && !^str.match[^^admin^$] && !^str.match[^^i^$] && !
^str.match[^^classes^$]){
^if(!^str.match[\.]){
<ul>
$search.name<br>
#в случае с папкой выводим её содержимое. Получается рекурсия.
^getsub[${dir}${str}]
</ul>
}{
$search.name
#а здесь я не знал, что вывести, и остановился просто на размере файла
$f[^file::load[text;${dir}${str}]] $f.size<br>
}
}
}
}
@getsub[subdir]
#метод рекурсии просмотра содержимого очередной папки
$subs[^file:list[$subdir/]]
^if($subs){
^subs.menu{
$str[$subs.name]
^if(^str.match[\.html^$] || !^str.match[\.]){
^if(!^str.match[\.]){
<li>$subs.name
<ul>
$subdir[${subdir}/${str}]
^getsub[$subdir]
</ul>
}{
<li>$subs.name
$f[^file::load[text;${subdir}/${str}]] $f.size
}
}
}
}код писался давно, тогда я мог многого не знать. Поэтому за спортивность кода не ручаюсь. В крайнем случае - можете его доработать.