parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Решение, но правильное ли, что можно сделать лучше ?

GoodVin 28.08.2003 16:03

Задача:
выбирать из БД данные по конкретной странице и рекурсивно строить url и др.
Например, url страницы 2го уровня должен быть составным: url1\url2.html

В auto.p я написал рекурсивную функцию:

@getFullPath[page;id_parent;param]
^page.menu{
^if($id_parent == 0){
$result[$param]
}{
^if($page.id == $id_parent){
$param[
$.url[${page.url}${param.url}]
$.name[<a href='${page.url}'>${page.name}</a> :: ${param.name}]
$.template[${page.template}${param.template}]
$.url[${page.content}${param.content}]
]
^getFullPath[$page;$page.id_parent;$param]
}
}
}

И вызываю ее так:

# выбираем данные о страницах из БД
$page[^table::sql{select * from page}]
... код который определяет нужную страницу
# инициализируем хэш
$param[
$.url[$page.url]
$.name[$page.name]
$.template[$page.template]
$.content[$page.content]
]
# вызываем процедуру
$paths[^getFullPath[$page;$page.id_parent;$param]]
# так можно распечатать результат
$paths.name : $paths.url : $paths.template : $path.content

Вопрос:
Правильно ли сделано, что можно улучшить ?