Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
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]]