| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
tricord 13.07.2005 11:22
Возможно.# достаем не более 20 корневых сообщений (parent_id == 0)
$rootMessages[^getMessagesByParent[0;20]]
# достаем все сообщения в тредах, которые мы только что достали
$messages[^getMessagesByThread[$rootMessages]]
# создаем хеш, в котором ключи — id элемента, содержание — таблица со всеми их дочерними элементами
$hashTree[^createHashTree[$messages]]
# cоздаем хэш со всеми родителями текущего элемента(id) включая и его самого.
$ParentsForIdHash[^getParentsForIdHash[$form:id]]
@getParentsForIdHash[id]
$MessageById[^getMessageById[$id]]
$MessageByThread[^getMessagesByThread[$MessageById.thread_id]]
$parentsMessage[^hash::create[]]
^parentsMessage.add[
$.0(0)
]
$str_hash[^MessageByThread.hash[forum_message_id]]
$pid($id)
^while($pid){
^parentsMessage.add[
$.[$pid][$pid]
]
$pid($str_hash.[$pid].parent_id)
}
# выводим все его элементы в виде раскрывающегося дерева
# c условием:
# ^if($ParentsForIdHash.[parent_id элемента]){
#
# }Не могу понять, как используя это условие изменить метод @printMessagesByParent[parent_id].