/**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }