/** * Get banner(s) content to display * * @return array */ public function getBannersContent() { $aplliedRules = null; $segmentIds = array(); $customer = Mage::registry('segment_customer'); if (!$customer) { $customer = Mage::getSingleton('customer/session')->getCustomer(); } $websiteId = Mage::app()->getWebsite()->getId(); if (!$customer->getId()) { $allSegmentIds = Mage::getSingleton('customer/session')->getCustomerSegmentIds(); if (is_array($allSegmentIds) && isset($allSegmentIds[$websiteId])) { $segmentIds = $allSegmentIds[$websiteId]; } } else { $segmentIds = Mage::getSingleton('enterprise_customersegment/customer')->getCustomerSegmentIdsForWebsite($customer->getId(), $websiteId); } $this->_bannerResource->filterByTypes($this->getTypes()); // Choose display mode switch ($this->getDisplayMode()) { case self::BANNER_WIDGET_DISPLAY_SALESRULE: if (Mage::getSingleton('checkout/session')->getQuoteId()) { $quote = Mage::getSingleton('checkout/session')->getQuote(); $aplliedRules = explode(',', $quote->getAppliedRuleIds()); } $bannerIds = $this->_bannerResource->getSalesRuleRelatedBannerIds($segmentIds, $aplliedRules, false); $this->setBannerIds($bannerIds); $bannerIds = $this->_filterActive($bannerIds); $bannersContent = $this->_getBannersContent(!empty($bannerIds) ? $bannerIds : array(0), $segmentIds); break; case self::BANNER_WIDGET_DISPLAY_CATALOGRULE: $bannerIds = $this->_bannerResource->getCatalogRuleRelatedBannerIds(Mage::app()->getWebsite()->getId(), Mage::getSingleton('customer/session')->getCustomerGroupId(), $segmentIds, false); $this->setBannerIds($bannerIds); $bannerIds = $this->_filterActive($bannerIds); $bannersContent = $this->_getBannersContent(!empty($bannerIds) ? $bannerIds : array(0), $segmentIds); break; case self::BANNER_WIDGET_DISPLAY_FIXED: default: $bannersContent = $this->_getBannersContent($this->getEnabledBannerIds(), $segmentIds); break; } // Unset types filter from resource $this->_bannerResource->filterByTypes(); // Filtering directives /** @var $helper Mage_Cms_Helper_Data */ $helper = Mage::helper('cms'); $processor = $helper->getPageTemplateProcessor(); foreach ($bannersContent as $bannerId => $content) { $bannersContent[$bannerId] = $processor->filter($content); } return $bannersContent; }
/** * Get banner(s) content to display * * @return array */ public function getBannersContent() { $bannersContent = array(); $aplliedRules = null; $segmentIds = array(); if (Mage::getSingleton('customer/session')->isLoggedIn()) { $segmentIds = Mage::getSingleton('enterprise_customersegment/customer')->getCustomerSegmentIds(Mage::getSingleton('customer/session')->getCustomer()); } $this->_bannerResource->filterByTypes($this->getTypes()); // choose display mode switch ($this->getDisplayMode()) { case self::BANNER_WIDGET_DISPLAY_SALESRULE: if (Mage::getSingleton('checkout/session')->getQuoteId()) { $aplliedRules = explode(',', Mage::getSingleton('checkout/session')->getQuote()->getAppliedRuleIds()); } $bannerIds = $this->_bannerResource->getSalesRuleRelatedBannerIds($segmentIds, $aplliedRules); $bannersContent = $this->_getBannersContent($bannerIds); break; case self::BANNER_WIDGET_DISPLAY_CATALOGRULE: $bannerIds = $this->_bannerResource->getCatalogRuleRelatedBannerIds(Mage::app()->getWebsite()->getId(), Mage::getSingleton('customer/session')->getCustomerGroupId(), $segmentIds); $bannersContent = $this->_getBannersContent($bannerIds); break; case self::BANNER_WIDGET_DISPLAY_FIXED: default: $bannersContent = $this->_getBannersContent($this->getBannerIds(), $segmentIds); break; } $this->_bannerResource->filterByTypes(); // unset types filter from resource // filtering directives /* @var $helper Mage_Cms_Helper_Data */ $helper = Mage::helper('cms'); $processor = $helper->getPageTemplateProcessor(); foreach ($bannersContent as $bannerId => $content) { $bannersContent[$bannerId] = $processor->filter($content); } return $bannersContent; }