parser

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

 

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

Пример построение деревьев. При parent_id не 0. Проблема. Помогите пожалуйста :(

dimka 23.01.2005 00:09

Здравствуйте. Не могли бы вы подказать почему в упрощенном примере(не получается у меня подключить $MAIN:pSQL ругается на: undefined method
inc
z:/home/q/www/classes/sql.p(69)
) если parent_id стоит отличный от 0 то дерево строится все равно такое же как и было. то есть я не могу построить деревце для одной ветки. не могли бы вы подсказать в чем может быть проблема? :( упростил не много создал 1 таблицу вместо 2 так как мне так удобнее было...
@getMessagesByParent[parent_id;limit]
^connect[$connect_string]{$result[^table::sql{
		SELECT
			*
		FROM
			forum_message
		WHERE
			parent_id = ^parent_id.int(0) AND
			is_published = 1
		ORDER BY
			dt_published DESC
}[^if(^limit.int(0)){$.limit(^limit.int(0))}]]}

@getMessagesByThread[thread]
^connect[$connect_string]{$result[^table::sql{
		SELECT
			*
		FROM
			forum_message
		WHERE
			^if($thread is table){
				^if($thread){thread_id IN (^thread.menu{$thread.thread_id}[,]) AND}
			}{
				thread_id = ^thread.int(0) AND
			}
			is_published = 1
		ORDER BY
			forum_message_id DESC
}]}



@printMessagesByParent[messages;parent_id][levelmessages]
$levelmessages[^messages.select($messages.parent_id == $parent_id)]
^levelmessages.menu{
	^printTreeItem[$levelmessages.fields;^printMessagesByParent[$messages;$levelmessages.forum_message_id]]
}


@printTreeItem[message;body]
$result[<li>$message.title ^if(!$message.is_not_empty){(-)},
	$message.author [$message.dt_published]
	^if(def $body){<ul>$body</ul>}
</li>]





@main[]
# достаем не более 20 корневых сообщений (parent_id == 0)
$rootMessages[^getMessagesByParent[0;20]]
# достаем все сообщения в тредах, которые мы только что достали
$messages[^getMessagesByThread[$rootMessages]]
# собственно выводим все данные о сообщениях в виде дерева
^printMessagesByParent[$messages;0]