Beispiel #1
0
 /**
  * @covers Mage_Core_Model_Layout_ScheduledStructure::setElementToMove
  */
 public function testSetElementToMove()
 {
     $data = array('some', 'new', 'data', 'element', 'to', 'move');
     /** Test add new element */
     $this->assertFalse($this->_model->hasElement('new_element'));
     $this->_model->setElementToMove('new_element', $data);
     $this->assertEquals($data, $this->_model->getElementToMove('new_element'));
     /** Test override existing element */
     $this->assertNotEquals($data, $this->_model->getElementToMove('element1'));
     $this->_model->setElementToMove('element1', $data);
     $this->assertEquals($data, $this->_model->getElementToMove('element1'));
 }
Beispiel #2
0
 /**
  * Schedule structural changes for move directive
  *
  * @param Mage_Core_Model_Layout_Element $node
  * @throws Magento_Exception
  * @return Mage_Core_Model_Layout
  */
 protected function _scheduleMove($node)
 {
     $elementName = (string) $node->getAttribute('element');
     $destination = (string) $node->getAttribute('destination');
     $alias = (string) $node->getAttribute('as') ?: '';
     if ($elementName && $destination) {
         list($siblingName, $isAfter) = $this->_beforeAfterToSibling($node);
         $this->_scheduledStructure->setElementToMove($elementName, array($destination, $siblingName, $isAfter, $alias));
     } else {
         throw new Magento_Exception('Element name and destination must be specified.');
     }
     return $this;
 }