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]); } } }
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]); } } }
public function _construct() { parent::_construct(); $this->_store_id = Mage::app()->getStore()->getStoreId(); }