public function beforeSave($object)
 {
     $this->_isInVendorEdit = $object->getData('_edit_in_vendor');
     $this->_allowUseRenamedImage = $object->getData('_allow_use_renamed_image');
     parent::beforeSave($object);
     if ($this->_isInVendorEdit && !Mage::getSingleton('udprod/source')->isMediaCfgPerOptionHidden() && !Mage::getSingleton('udprod/source')->isCfgUploadImagesSimple() && !Mage::getSingleton('udprod/source')->isMediaCfgShowExplicit()) {
         $attrCode = $this->getAttribute()->getAttributeCode();
         $value = $object->getData($attrCode);
         if (is_array($value) && is_array($value['images'])) {
             $useImage = null;
             foreach ($value['images'] as $img) {
                 if (isset($img['super_attribute']) && is_array($img['super_attribute']) && isset($img['super_attribute']['main']) && !@$img['removed']) {
                     $useImage = $img;
                     break;
                 }
             }
             if ($useImage) {
                 foreach ($object->getMediaAttributes() as $mediaAttribute) {
                     $mediaAttrCode = $mediaAttribute->getAttributeCode();
                     $attrData = $object->getData($mediaAttrCode);
                     $object->setData($mediaAttrCode, @$useImage['file']);
                     $object->setData($mediaAttrCode . '_label', @$useImage['label']);
                 }
             }
         }
     }
     $this->_isInVendorEdit = false;
     $this->_allowUseRenamedImage = false;
     return $this;
 }
Example #2
0
 /**
  * @covers Mage_Catalog_Model_Product_Attribute_Backend_Media::beforeSave
  * @covers Mage_Catalog_Model_Product_Attribute_Backend_Media::getRenamedImage
  */
 public function testBeforeSave()
 {
     $product = new Mage_Catalog_Model_Product();
     $product->setData('media_gallery', array('images' => array('image' => array('file' => 'magento_image.jpg'))));
     $this->_model->beforeSave($product);
     $this->assertStringStartsWith('./magento_image', $product->getData('media_gallery/images/image/new_file'));
     $product->setIsDuplicate(true);
     $product->setData('media_gallery', array('images' => array('image' => array('value_id' => '100', 'file' => 'magento_image.jpg'))));
     $this->_model->beforeSave($product);
     $this->assertStringStartsWith('./magento_image', $product->getData('media_gallery/duplicate/100'));
     /* affect of beforeSave */
     $this->assertNotEquals('magento_image.jpg', $this->_model->getRenamedImage('magento_image.jpg'));
     $this->assertEquals('test.jpg', $this->_model->getRenamedImage('test.jpg'));
 }
Example #3
0
 /**
  * Before saving the object we store the gallery data into a temporary field to avoid
  * the gallery is saved as a standard attribute
  *
  * @param Mage_Catalog_Model_Product $object The saved product
  *
  * @return void othing is returned by this method
  */
 public function beforeSave($object)
 {
     parent::beforeSave($object);
     $attrCode = $this->getAttribute()->getAttributeCode();
     $object->setData($attrCode . '_tmp', $object->getData($attrCode));
     $object->unsetData($attrCode);
 }