コード例 #1
0
ファイル: Media.php プロジェクト: rcclaudrey/dev
 function _construct()
 {
     parent::_construct();
     if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $this->getProduct()->getTypeId()) {
         $usedAttributes = $this->getProduct()->getTypeInstance(true)->getUsedProductAttributes($this->getProduct());
         $productData = array();
         foreach ($usedAttributes as $attribute) {
             $optionValue = Mage::app()->getRequest()->getParam($attribute->getAttributeCode(), -1);
             if (-1 != $optionValue) {
                 foreach ($this->getProduct()->getTypeInstance(true)->getUsedProducts(null, $this->getProduct()) as $simpleProduct) {
                     if ($simpleProduct->isSaleable() && $simpleProduct->getData($attribute->getAttributeCode()) == $optionValue) {
                         $simpleProduct->load();
                         if (count($simpleProduct->getMediaGalleryImages()) > 0 && $simpleProduct->getImage()) {
                             $simpleProduct->setData('enable_zoom_plugin', Mage::registry('product')->getData('enable_zoom_plugin'));
                             $products[] = $simpleProduct;
                             // unset produt without assingend secound attribute
                             foreach ($products as $key => $val) {
                                 if ($val->getData($attribute->getAttributeCode()) != $optionValue) {
                                     unset($products[$key]);
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if (isset($products) && is_array($products) && count($products) > 0) {
             $this->setProduct($products[0]);
         }
     }
 }
コード例 #2
0
ファイル: Media.php プロジェクト: rcclaudrey/dev
 function _construct()
 {
     parent::_construct();
     $modules = Mage::getConfig()->getNode('modules')->children();
     $modulesArray = (array) $modules;
     if (!isset($modulesArray['SMDesign_Colorswatch']) || isset($modulesArray['SMDesign_Colorswatch']) && $modulesArray['SMDesign_Colorswatch']->active == false) {
         return $this;
         // Colorswatch module is not available.
     }
     $id = (int) Mage::app()->getRequest()->getParam('id');
     $inCartProduct = null;
     $requestByCart = array();
     if ($id) {
         $quoteItem = Mage::getSingleton('checkout/cart')->getQuote()->getItemById($id);
         if ($quoteItem) {
             $selectedOption = $quoteItem->getOptionByCode('simple_product');
             $inCartProduct = Mage::getModel('catalog/product')->load($selectedOption['product_id']);
             if ($inCartProduct->getImage()) {
                 $inCartProduct->setData('enable_zoom_plugin', 1);
                 $this->setProduct($inCartProduct);
             }
         }
     }
     if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $this->getProduct()->getTypeId()) {
         $usedAttributes = $this->getProduct()->getTypeInstance(true)->getUsedProductAttributes($this->getProduct());
         $productData = array();
         foreach ($usedAttributes as $attribute) {
             if (Mage::getModel('colorswatch/attribute_settings')->getConfig($attribute->getId(), 'allow_attribute_to_change_main_image')) {
                 $optionValue = Mage::app()->getRequest()->getParam($attribute->getAttributeCode(), $inCartProduct ? $inCartProduct->getData($attribute->getAttributeCode()) : -1);
                 //                    if (-1 != $optionValue) {
                 foreach ($this->getProduct()->getTypeInstance(true)->getUsedProducts(null, $this->getProduct()) as $simpleProduct) {
                     if ($simpleProduct->isSaleable() && $simpleProduct->getData($attribute->getAttributeCode()) == $optionValue) {
                         $simpleProduct->load();
                         if (count($simpleProduct->getMediaGalleryImages()) > 0 && $simpleProduct->getImage()) {
                             $simpleProduct->setData('enable_zoom_plugin', 1);
                             $products[] = $simpleProduct;
                             // unset produt without assingend secound attribute
                             foreach ($products as $key => $val) {
                                 if ($val->getData($attribute->getAttributeCode()) != $optionValue) {
                                     unset($products[$key]);
                                 }
                             }
                         }
                     }
                 }
                 //                    }
             }
         }
         if (isset($products) && is_array($products) && count($products) > 0) {
             $this->setProduct($products[0]);
         }
     }
 }
コード例 #3
0
ファイル: Media.php プロジェクト: ujwalasawant/magento
 public function _construct()
 {
     parent::_construct();
     $this->_store_id = Mage::app()->getStore()->getStoreId();
 }