parser

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

 

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

Я несколько переделал код но он всё равно не работает

Oleg 12.08.2003 21:33

Вот такую ошибку я вижу


Unhandled Exception (Debug)
contains illegal assignment attempt of table to MAIN method_frame, use constructor
body

y:/home/test2.ru/www/auto.p(14)
exception.type=parser.runtime



Разумеется что в y:/home/test2.ru/www/auto.p(14) ошибок нет, т.к. всё работает и уже давно.

Я думаю что ошибка находится там где я пытаюсь строить древовидную структуру, т.к. всё остально работает, пусть и в изменённом виде.
###################################################################
#Вывод всех сообщений указанного треда
###################################################################
@print_tred_message[]

#Соединяемся с базой
^MAIN:dbconnect{

#Достаём данные из базы
   $messages[^table::sql{
        SELECT
		    forum_message.forum_message_id AS 'forum_message_id',
			parent_id,
			title,
			dt_published,
			author,
			body,
			thread_id
			
        FROM
            forum_message,
            forum_message_body
        WHERE
            (
                forum_message.forum_message_id=forum_message_body.forum_message_id AND
                forum_id=^if(def $form:forum){$form:forum}{0} AND
                is_published=1 AND
               (forum_message.forum_message_id=^if(def $form:tred){$form:tred}{0} OR
                thread_id=^if(def $form:tred){$form:tred}{0})
            )
        GROUP BY forum_message.forum_message_id

#Сортируем список тредов в обратном порядке
        ORDER BY dt_published ^if(^form:tred.int(0)==0){DESC}{}}]

#Вызываем построитель деревьев
^if(def $messages){^build_tread[$messages]}{}}


#################################################################
#Строим древовидную структуру
#################################################################
@build_tread[messag][live_message]
#Выбираем родителя
$sel_mes{^messag.select($messag.parent_id==^live_message.int(0))}

#Читаем количество сообщений в треде
$num_messages[^table::sql{select * from forum_message where thread_id=$messag.forum_message_id AND forum_id=0}]

#Перебираем родителей
^if(def $sel_mes){
^sel_mes.menu{

#Если сообщение корневое(верхнего уровня)читаем количество сообшений в треде

#Выводим сообщения
^shablon[^if($sel_mes.thread_id==0){/forum/?tred=$sel_mes.forum_message_id};$sel_mes.title;$sel_mes.dt_published;;$sel_mes.author;$sel_mes.body;
^if(^form:tred.int(0)==0){
<table>
<tr>
	<td valign="middle">^ansver[$sel_mes.forum_message_id;^if($sel_mes.thread_id==0){$sel_mes.forum_message_id}{$sel_mes.thread_id};0]</td>
	<td valign="top">^if(^form:tred.int(0)==0){<a href="/forum/?tred=$sel_mes.forum_message_id">Ответов:^num_messages.count[]</a>}</td>
</tr>
</table>}]

#Начинаем строительство
<table>
<td> </td>

#Вызывем повторно
<td>^build_tread[$sel_mes.forum_message_id]</td>
</table>
}
}
С хешем я обязательно попробую только с этим разберусь.