parser

/faq/faq
/authors/авторы
/docs/документация

/powered_by_parser/в действии
/feedback/куда говорить
/jargon/жаргон

/download/скачать

/examples/примеры
/forum/форум



Поиск по форуму

По умолчанию ключевое слово ищется только в заголовке сообщения.

Ключевое слово:

Фильтровать по автору:



Посмотрел как было, увы, было нехорошо... совсем.

Misha 03.12.2001 16:52

Было "в лоб":

@printMessagesByParent[parentId;threadId]
^var[tmp1;$parentId]
^var[tmp2;$threadId]
^var[tmp3;$parentTitle]
^context[parent$parentId;
^sql[
select
id,
title,
author,
substring(message,1,1) as message,
date_format(posted, '%d.%m %H:%i') as posted_formatted,
date_format(posted, '%Y-%m-%d') as posted_formatted_date
from forum
where
parent_id = '^var[tmp1]' and
thread_id = '^var[tmp2]'
order by posted, id
]
<ul class="compact">
^menu[
<li type="disc">
^rem[ тут выводится сама строка с заголовком сообщения]
^macro[messageTitle.forum;^item[id];^item[title];^item[author];^item[posted_formatted];^eq[^item[posted_formatted_date];^date[%Y-%m-%d];1];^eq[^number[id];^item[id];1];^item[message]]
^macro[printMessagesByParent;^item[id];^var[tmp2]]
</li>
]
</ul>
]


(Я правда не знаю, сколько этой версии лет, но ничего новее я в _своих_ архивах не нашел).

Это ОЧЕНЬ плохой вариант, т.к. SQL сервер просто ляжет при больших деревьях.
У меня есть где-то рекурсивные обходы дерева на 2 парсере, но искать и затачивать для форума это меня ломает...



Вот хоть какой-то, но пример:

@reset[]
^ifdef[^var[reset_^var[reset_context]];
^locate[0;^var[reset_^var[reset_context]]]
;
^locate[0;deaddead]
^var[reset_^var[reset_context];^item[0]]
]



@draw_tree[]
^var[level;+;1]
^macro[reset]
^var[i;0]
^while[i<^item[count];
^eq[^item[parent_id];^var[parent_id];
^var[current_^var[level];^item[current]]
^var[parent_id_^var[level];^var[parent_id]]

^rem[ ???????? parent_id ????? ?????????? ?????????? ]
^var[parent_id;^item[id]]

<tr><td>
<table cellpadding=0 cellspacing=0 border=0>
<tr valign=middle>
<td>
^var[nbsp;^var[level]]
^while[nbsp > 0;&nbsp^;&nbsp^;&nbsp^;&nbsp^;^var[nbsp;-;1]]
</td>

<td>&nbsp^;</td>
<td>
<a href="message_id=^item[id]">^item[name]</a>
</td>
</tr>
</table>
</td></tr>
^macro[draw_tree]

^var[parent_id;^var[parent_id_^var[level]]]

^var[i;^var[current_^var[level]]]

^macro[reset]
^shift[^var[current_^var[level]]]
]
^shift[1]
^var[i;+;1]
]
^var[level;-;1]


@main
^context[tree;
^sql[SELECT id, name, object_id as parent_id FROM object ]

^var[reset_context;tree]

^var[parent_id;0]

<table>
^macro[draw_tree]
</table>
]


-Это пример НЕ форума, а обхода дерева.
-Писал НЕ я, я даже разбираться толком не стал, но знаю, что это работает :)
-Возможно придется поправить ошибки, которые внес я, убивая не относящееся к делу.
-Есссно нужно будет поменять форматирование табличками на <ul><li>...</li></ul>, или ещё как...

Удачи.

<<  Вернуться к списку сообщений


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева