Beispiel #1
0
 /**
  * Compact collection of changes
  *
  * @param Mage_DesignEditor_Model_Change_Collection $collection
  * @throws Mage_Core_Exception
  * @return Mage_DesignEditor_Model_History_Compact
  */
 public function compact(Mage_DesignEditor_Model_Change_Collection $collection)
 {
     $itemType = $collection->getItemClass();
     if (!$itemType == 'Mage_DesignEditor_Model_ChangeAbstract') {
         Mage::throwException(Mage::helper('Mage_DesignEditor_Helper_Data')->__('Invalid collection items\' type "%s"', $itemType));
     }
     /** @var $model Mage_DesignEditor_Model_History_CompactInterface */
     foreach ($this->_getCompactModels() as $model) {
         $model->compact($collection);
     }
     return $this;
 }
Beispiel #2
0
 /**
  * Add change to internal collection
  *
  * @param Mage_DesignEditor_Model_ChangeAbstract|Varien_Object|array $item
  * @return Mage_DesignEditor_Model_History
  */
 public function addChange($item)
 {
     $baseChangeClass = self::BASE_CHANGE_CLASS;
     if (!$item instanceof $baseChangeClass) {
         $item = $this->_getChangeItem($item);
     }
     $this->_collection->addItem($item);
     return $this;
 }
Beispiel #3
0
 /**
  * Get Layout update out of collection of changes
  *
  * @param Mage_DesignEditor_Model_Change_Collection $collection
  * @param string|null $handle
  * @return string
  */
 public function render(Mage_DesignEditor_Model_Change_Collection $collection, $handle = null)
 {
     $element = new Varien_Simplexml_Element($this->_getInitialXml());
     foreach ($collection as $item) {
         if ($item instanceof Mage_DesignEditor_Model_Change_LayoutAbstract) {
             $this->_render($element, $item);
         }
     }
     if ($handle && $collection->count() > 0) {
         $layoutUpdate = '';
         $element = $element->{$handle};
         /** @var $node Varien_Simplexml_Element */
         foreach ($element->children() as $node) {
             $layoutUpdate .= $node->asNiceXml();
         }
     } else {
         $layoutUpdate = $element->asNiceXml();
     }
     return $layoutUpdate;
 }
Beispiel #4
0
 /**
  * Test toArray method
  *
  * @covers Mage_DesignEditor_Model_Change_Collection::toArray
  */
 public function testToArray()
 {
     $this->assertInternalType('array', $this->_model->toArray());
 }