parser

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

 

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

Ответ

tema 09.10.2007 20:09

Вы видать не поняли меня $TableBlock.params это поле из таблицы привязки блоков к странице t_structure_block поля structure_id,block_id,params где параметры для блока к разделу не выносятся в другие даблицы а пишется в виде хеша в текстовое поле, но все равно смушает использование ^process{} и ^use[], вот пример привязки блока:
$Blocks[^Engine.XDoc.createElement[Blocks]]
$TableBlock[^table::sql{SELECT DISTINCT t_block.id,t_block.system_name,t_block.process,t_pages_block.params FROM t_block LEFT JOIN t_pages_block ON t_block.id=t_pages_block.block_id WHERE t_block.for_all_pages=1 OR t_block.id IN(SELECT block_id FROM t_pages_block WHERE page_id=$Engine.Id)}]
^if($TableBlock){
	^TableBlock.menu{
$TempBlock[^Engine.XDoc.createElement[$TableBlock.system_name]]
$ProcessName[$TableBlock.system_name]
		^if(-f "${Engine.ClassesPath}${ProcessName}.p"){
^use[${Engine.ClassesPath}${ProcessName}.p]
$Params[^hash::create[]]
^process{$TableBlock.params}
$ProcessClass[^MAIN:ClassFactory.$ProcessName.factoryCreate[$Params]]
$Temp[^TempBlock.appendChild[^ProcessClass.Generate[]]]
$Temp[^Blocks.appendChild[$TempBlock]]
		}
	}
}
$Temp[^Root.appendChild[$Blocks]]