/** * Check availability of giftmessages for specified entity. * * @param string $type * @param Varien_Object $entity * @param Mage_Core_Model_Store|integer $store * @return boolean */ public function isMessagesAvailable($type, Varien_Object $entity, $store = null) { $resultItems = Mage::getStoreConfig(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, $store); $resultOrder = Mage::getStoreConfig(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, $store); if ($type == 'items') { return $resultItems || $resultOrder; } if (is_object($store)) { $storeId = $store->getId(); } elseif (is_numeric($store)) { $storeId = $store; } else { $storeId = Mage::app()->getStore()->getId(); } if ($type == 'item') { return $resultItems && $this->_getDependenceFromStoreConfig($entity->getProduct()->getGiftMessageAvailable(), $store); } elseif ($type == 'order_item') { return $resultItems && $this->_getDependenceFromStoreConfig(is_null($entity->getGiftMessageAvailable()) ? 2 : $entity->getGiftMessageAvailable(), $store); } elseif ($type == 'address_item') { if (!$resultItems) { return false; } if (!$this->isCached('address_item_' . $entity->getProductId())) { $this->setCached('address_item_' . $entity->getProductId(), Mage::getModel('catalog/product')->setStoreId($storeId)->load($entity->getProductId())->getGiftMessageAvailable()); } return $this->_getDependenceFromStoreConfig($this->getCached('address_item_' . $entity->getProductId()), $store); } else { return $resultOrder; } return false; }
/** * Check availability of giftmessages for specified entity. * * @param string $type * @param Varien_Object $entity * @param Mage_Core_Model_Store|integer $store * @return boolean */ public function isMessagesAvailable($type, Varien_Object $entity, $store = null) { if ($type == 'items') { $items = $entity->getAllItems(); if (!is_array($items) || empty($items)) { return Mage::getStoreConfig(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ITEMS, $store); } if ($entity instanceof Mage_Sales_Model_Quote) { $_type = $entity->getIsMultiShipping() ? 'address_item' : 'item'; } else { $_type = 'order_item'; } foreach ($items as $item) { if ($item->getParentItem()) { continue; } if ($this->isMessagesAvailable($_type, $item, $store)) { return true; } } } elseif ($type == 'item') { return $this->_getDependenceFromStoreConfig($entity->getProduct()->getGiftMessageAvailable(), $store); } elseif ($type == 'order_item') { return $this->_getDependenceFromStoreConfig($entity->getGiftMessageAvailable(), $store); } elseif ($type == 'address_item') { $storeId = is_numeric($store) ? $store : Mage::app()->getStore($store)->getId(); if (!$this->isCached('address_item_' . $entity->getProductId())) { $this->setCached('address_item_' . $entity->getProductId(), Mage::getModel('catalog/product')->setStoreId($storeId)->load($entity->getProductId())->getGiftMessageAvailable()); } return $this->_getDependenceFromStoreConfig($this->getCached('address_item_' . $entity->getProductId()), $store); } else { return Mage::getStoreConfig(self::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, $store); } return false; }
/** * Check availability of giftmessages for specified entity. * * @param string $type * @param Varien_Object $entity * @param Mage_Core_Model_Store|integer $store * @return boolean */ public function isMessagesAvailable($type, Varien_Object $entity, $store = null) { $resultItems = $this->getConfigGiftMessageAllowItems($store); $resultOrder = $this->getConfigGiftMessageAllowOrder($store); if ($type == 'items') { return $resultItems || $resultOrder; } if (is_object($store)) { $storeId = $store->getId(); } elseif (is_numeric($store)) { $storeId = $store; } else { $storeId = Mage::app()->getStore()->getId(); } if ($type == 'item') { return !$entity->getProduct()->isVirtual() && $resultItems && $this->_getDependenceFromStoreConfig($entity->getProduct()->getGiftMessageAvailable(), $store); } elseif ($type == 'order_item') { return !$entity->getIsVirtual() && $resultItems && $this->_getDependenceFromStoreConfig(is_null($entity->getGiftMessageAvailable()) ? 2 : $entity->getGiftMessageAvailable(), $store); } elseif ($type == 'address_item') { if (!$resultItems) { return false; } if (!$this->isCached('address_item_' . $entity->getProductId())) { $this->setCached('address_item_' . $entity->getProductId(), Mage::getModel('catalog/product')->setStoreId($storeId)->load($entity->getProductId())->getGiftMessageAvailable()); } return !$entity->getProduct()->isVirtual() && $this->_getDependenceFromStoreConfig($this->getCached('address_item_' . $entity->getProductId()), $store); } else { return $resultOrder; } return false; }