示例#1
0
 /**
  * Duplicates gallery db values
  *
  * @param IcebergCommerce_VideoGallery_Model_Backend_Video $object
  * @param array $newFiles
  * @param int $originalProductId
  * @param int $newProductId
  * @return IcebergCommerce_VideoGallery_Model_Resource_Mysql4_Backend_Video
  */
 public function duplicate($object, $newFiles, $originalProductId, $newProductId)
 {
     $select = $this->_getReadAdapter()->select()->from($this->getMainTable(), array('value_id', 'value', 'provider', 'thumbnail'))->where('attribute_id = ?', $object->getAttribute()->getId())->where('entity_id = ?', $originalProductId);
     $valueIdMap = array();
     // Duplicate main entries of gallery
     foreach ($this->_getReadAdapter()->fetchAll($select) as $row) {
         $data = array('attribute_id' => $object->getAttribute()->getId(), 'entity_id' => $newProductId, 'provider' => isset($newFiles[$row['provider']]) ? $newFiles[$row['provider']] : $row['provider'], 'thumbnail' => isset($newFiles[$row['thumbnail']]) ? $newFiles[$row['thumbnail']] : $row['thumbnail'], 'value' => isset($newFiles[$row['value']]) ? $newFiles[$row['value']] : $row['value']);
         $valueIdMap[$row['value_id']] = $this->insertGallery($data);
     }
     if (count($valueIdMap) == 0) {
         return $this;
     }
     // Duplicate per store gallery values
     $select = $this->_getReadAdapter()->select()->from($this->getTable(self::GALLERY_VALUE_TABLE))->where('value_id IN(?)', array_keys($valueIdMap));
     foreach ($this->_getReadAdapter()->fetchAll($select) as $row) {
         $row['value_id'] = $valueIdMap[$row['value_id']];
         $this->insertGalleryValueInStore($row);
     }
     return $this;
 }
示例#2
0
 /**
  * Duplicate object data.
  * 
  * @param IcebergCommerce_VideoGallery_Model_Backend_Video $object
  * @return IcebergCommerce_VideoGallery_Model_Backend_Video
  */
 public function duplicate($object)
 {
     $attrCode = $this->getAttribute()->getAttributeCode();
     $mediaGalleryData = $object->getData($attrCode);
     if (!isset($mediaGalleryData['videos']) || !is_array($mediaGalleryData['videos'])) {
         return $this;
     }
     $this->_getResource()->duplicate($this, isset($mediaGalleryData['duplicate']) ? $mediaGalleryData['duplicate'] : array(), $object->getOriginalId(), $object->getId());
     return $this;
 }