/** * Create structure of elements from the loaded XML configuration */ public function generateElements() { Magento_Profiler::start(__CLASS__ . '::' . __METHOD__); Magento_Profiler::start('build_structure'); $this->_scheduledStructure->flushScheduledStructure(); $this->_readStructure($this->getNode()); while (false === $this->_scheduledStructure->isStructureEmpty()) { $this->_scheduleElement(key($this->_scheduledStructure->getStructure())); } $this->_scheduledStructure->flushPaths(); foreach ($this->_scheduledStructure->getListToMove() as $elementToMove) { $this->_moveElementInStructure($elementToMove); } foreach ($this->_scheduledStructure->getListToRemove() as $elementToRemove) { $this->_removeElement($elementToRemove); } Magento_Profiler::stop('build_structure'); Magento_Profiler::start('generate_elements'); while (false === $this->_scheduledStructure->isElementsEmpty()) { list($type, $node) = current($this->_scheduledStructure->getElements()); $elementName = key($this->_scheduledStructure->getElements()); if (isset($node['output'])) { $this->addOutputElement($elementName); } if ($type == self::TYPE_BLOCK) { $this->_generateBlock($elementName); } else { $this->_generateContainer($elementName, (string) $node[self::CONTAINER_OPT_LABEL], array(self::CONTAINER_OPT_HTML_TAG => (string) $node[self::CONTAINER_OPT_HTML_TAG], self::CONTAINER_OPT_HTML_ID => (string) $node[self::CONTAINER_OPT_HTML_ID], self::CONTAINER_OPT_HTML_CLASS => (string) $node[self::CONTAINER_OPT_HTML_CLASS])); $this->_scheduledStructure->unsetElement($elementName); } } Magento_Profiler::stop('generate_elements'); Magento_Profiler::stop(__CLASS__ . '::' . __METHOD__); }
/** * @covers Mage_Core_Model_Layout_ScheduledStructure::setElementToRemoveList */ public function testSetElementToRemoveList() { $this->assertNotContains('element1', $this->_model->getListToRemove()); $this->_model->setElementToRemoveList('element1'); $this->assertContains('element1', $this->_model->getListToRemove()); }