parser

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

 

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

и менее спортивный вариант:

Misha v.3 16.01.2003 18:42

Он подразумевает, что новости будут выводиться таки в каком-либо порадке :)
# функция сортировки, возвращает строку, которые собственно и сортируются
@sort_func[file][f]
$f[^file::stat[$file]]
$result[^f.mdate.sql-string[]]


@main[]
# считываем содержимое каталога, в простейшем случае можно не проверять потом существование файла, т.к. мы только-что этот список получили, но по хорошему в функции сортировки надо это дело проверять
$list[^file:list[/news/;\.news^$]]

# сортируем, используя вункцию сортировки, в ней хоть по содержимому файла можете сортировать
^list.sort{^sort_func[$list.name]}[desc]

# у отсортированого забираем 3 первые строки
$list_limit[^list.select(^list.line[] <= 3)]

# собственно распечатываем результат, не забывая про taint/untaint
^list_limit.menu{
	$f[^file::load[text;/news/$list_limit.name]]
	$f.text
}[<br />]
Вариант плох тем, что для ВСЕХ файлов, удовлетворяющих маске поиска мы будем делать file::stat, и это тот момент, когда самое время задуматься об использовании баз данных.
С ними весь код получения данных заменяется на:
$list_limit[^table::sql{SELECT text FROM news ORDER BY dt_published DESC}[$.limit(3)]]