/** * configure block renderer class per element */ protected function _initElementRendering() { $typeConfig = Mage::getStoreConfig('firegento_flexcms/types'); if (is_array($this->_contentElements)) { foreach ($this->_contentElements as $element) { if (isset($typeConfig[$element->getContentType()])) { $cfg = new Varien_Object($typeConfig[$element->getContentType()]); if (!($renderType = $cfg->getBlockType())) { $rendererType = 'firegento_flexcms/type_default'; } $rendererName = 'flexcms_content_render_' . $element->getArea() . '_' . $element->getContentId(); $rendererTemplate = $cfg->getBlockTemplate(); $rendererContent = new Varien_Object($element->getContent()); /** @var Firegento_FlexCms_Block_Type_Abstract $block */ $block = Mage::app()->getLayout()->createBlock($rendererType, $rendererName); $block->setTemplate($rendererTemplate); $block->setContentData($rendererContent); $element->setRenderer($block); } } } }