parser

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

 

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

Ответ

Dima 09.09.2004 19:43

вот самый толстый кусок, без него памяти расходуется на 1,5 Мб меньше, из за чего?
@move[id][checked_pid;get_childrens]
# есть ли у раздела дети
$checked_pid(^MAIN:pSQL.sql[int]{SELECT COUNT(*) FROM page WHERE parent_id='$id'})
^if($checked_pid){
	^rem{*** если есть выбираем всех ***}
	$get_childrens[^MAIN:pSQL.sql[table]{SELECT id FROM page WHERE parent_id='$id'}]

	^if($get_childrens){
		^get_childrens.menu{
			^parents_move[$id]
			^childrens_move[$id]
			^move[$get_childrens.id]
		}
	}
}{
	^parents_move[$id]
}

# end @move[]
####################################################################################################################

@parents_move[id][path]
# полный путь (вычисляется путем формирования всех относительных uri и записывания их в хеш)
$path[$full_paths.[$id].uri]
^MAIN:pSQL.sql[void]{
	UPDATE navigation
	SET full_dir='$path'
	WHERE id='$id'
}

# end @parents_move[]
####################################################################################################################

@childrens_move[id][path]
# полный путь (вычисляется путем формирования всех относительных uri и записывания их в хеш)
$path[$full_paths.[$id].uri]
^MAIN:pSQL.sql[void]{
	UPDATE navigation
	SET full_dir='$path'
	WHERE id='$id'
}

# end @childrens_move[]
####################################################################################################################
ЗЫ
$full_paths.[$id].uri
- это
таблица с навигацией из базы (id, pid, uri), затем это таблица с полными путями, затем хеш с ключами id