/** * @param Mage_Core_Model_Layout $layout * @param array $dynamicBlocks * @return Mage_Core_Model_Layout */ protected function _prepareLayout(Mage_Core_Model_Layout $layout, array $dynamicBlocks) { $xml = simplexml_load_string($layout->getXmlString(), Lesti_Fpc_Helper_Data::LAYOUT_ELEMENT_CLASS); $cleanXml = simplexml_load_string('<layout/>', Lesti_Fpc_Helper_Data::LAYOUT_ELEMENT_CLASS); $types = array('block', 'reference', 'action'); foreach ($dynamicBlocks as $blockName) { foreach ($types as $type) { $xPath = $xml->xpath("//" . $type . "[@name='" . $blockName . "']"); foreach ($xPath as $child) { $cleanXml->appendChild($child); } } } $layout->setXml($cleanXml); $layout->generateBlocks(); return Mage::helper('fpc/block_messages')->initLayoutMessages($layout); }