/**
  * Prepare and save layout updates data
  *
  * @param Mage_Widget_Model_Widget_Instance $widgetInstance
  * @param array $pageGroupData
  * @return array of inserted layout updates ids
  */
 protected function _saveLayoutUpdates($widgetInstance, $pageGroupData)
 {
     $write = $this->_getWriteAdapter();
     $pageLayoutUpdateIds = array();
     $storeIds = $this->_prepareStoreIds($widgetInstance->getStoreIds());
     foreach ($pageGroupData['layout_handle_updates'] as $handle) {
         $this->_getWriteAdapter()->insert($this->getTable('core/layout_update'), array('handle' => $handle, 'xml' => $widgetInstance->generateLayoutUpdateXml($pageGroupData['block_reference'], $pageGroupData['template']), 'sort_order' => $widgetInstance->getSortOrder()));
         $layoutUpdateId = $this->_getWriteAdapter()->lastInsertId();
         $pageLayoutUpdateIds[] = $layoutUpdateId;
         foreach ($storeIds as $storeId) {
             $this->_getWriteAdapter()->insert($this->getTable('core/layout_link'), array('store_id' => $storeId, 'area' => $widgetInstance->getArea(), 'package' => $widgetInstance->getPackage(), 'theme' => $widgetInstance->getTheme(), 'layout_update_id' => $layoutUpdateId));
         }
     }
     return $pageLayoutUpdateIds;
 }
Example #2
0
 /**
  * Prepare and save layout updates data
  *
  * @param Mage_Widget_Model_Widget_Instance $widgetInstance
  * @param array $pageGroupData
  * @return array of inserted layout updates ids
  */
 protected function _saveLayoutUpdates($widgetInstance, $pageGroupData)
 {
     $writeAdapter = $this->_getWriteAdapter();
     $pageLayoutUpdateIds = array();
     $storeIds = $this->_prepareStoreIds($widgetInstance->getStoreIds());
     $layoutUpdateTable = $this->getTable('core/layout_update');
     $layoutUpdateLinkTable = $this->getTable('core/layout_link');
     foreach ($pageGroupData['layout_handle_updates'] as $handle) {
         $xml = $widgetInstance->generateLayoutUpdateXml($pageGroupData['block_reference'], $pageGroupData['template']);
         $insert = array('handle' => $handle, 'xml' => $xml);
         if (strlen($widgetInstance->getSortOrder())) {
             $insert['sort_order'] = $widgetInstance->getSortOrder();
         }
         $writeAdapter->insert($layoutUpdateTable, $insert);
         $layoutUpdateId = $writeAdapter->lastInsertId($layoutUpdateTable);
         $pageLayoutUpdateIds[] = $layoutUpdateId;
         $data = array();
         foreach ($storeIds as $storeId) {
             $data[] = array('store_id' => $storeId, 'area' => $widgetInstance->getArea(), 'package' => $widgetInstance->getPackage(), 'theme' => $widgetInstance->getTheme(), 'layout_update_id' => $layoutUpdateId);
         }
         $writeAdapter->insertMultiple($layoutUpdateLinkTable, $data);
     }
     return $pageLayoutUpdateIds;
 }