parser

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

 

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

Дневник

dRmx 12.09.2003 01:10 / 12.09.2003 01:11

Решил я помучаться, и видимо опять придется быть ламером, т.к. вроде бы на ровном месте спотыкаюсь. Делаю пример. http://www.parser.ru/examples/trees/ — построение древовидных структур на примере простенького форума. Прочитал я DISCLAIMER. Делаю. Начал с того, что прочитал еще все остальное. В глаза явных ошибок не бросилось. (Может кто-то усмехнется, и не будет дальше читать даже, говоря: «Ну придурок», но мне пофиг — я учусь.) Копирую все подряд, ожидая каким же будет первый мат. При плагиате кода
@main[]
^MAIN:pSQL.server{
# достаем не более 20 корневых сообщений (parent_id == 0)
$rootMessages[^getMessagesByParent[0;20]]
# достаем все сообщения в тредах, которые мы только что достали
$messages[^getMessagesByThread[$rootMessages]]
# собственно выводим все данные о сообщениях в виде дерева
^printMessagesByParent[$messages;0]
}
возникают вопросы: во-первых, что такое server, понятно что утка, но что должно быть на его месте? Во-вторых, почему pSQL, а не SQL? А ошибка вылетает
(void) not a method or junction, can not call it

getMessagesByParent
Типа метод не определен. Как нет, если он есть:
@getMessagesByParent[parent_id;limit]
$result[^table::sql{
		SELECT
			forum_message.forum_message_id,
			parent_id,
			thread_id,
			title,
			author,
			email,
			dt_published,
			forum_message_body.forum_message_id AS is_not_empty
		FROM
			forum_message
			^MAIN:pSQL.left_join[from;forum_message_body;forum_message.forum_message_id = forum_message_body.forum_message_id]
		WHERE
			^MAIN:pSQL.left_join[where;forum_message_body;forum_message.forum_message_id = forum_message_body.forum_message_id]
			^if(def $parent_id){parent_id = ^parent_id.int(0) AND}
			is_published = 1
		ORDER BY
			dt_published
}[^if(^limit.int(0)){$.limit(^limit.int(0))}]]