示例#1
0
 /**
  * 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__);
 }
示例#2
0
 /**
  * @covers Mage_Core_Model_Layout_ScheduledStructure::flushPaths
  */
 public function testFlushPaths()
 {
     $this->assertNotEmpty($this->_model->getPaths());
     $this->_model->flushPaths();
     $this->assertEmpty($this->_model->getPaths());
 }