예제 #1
0
 /**
  * Produce and return block's html output
  *
  * It is a final method, but you can override _toHtml() method in descendants if needed.
  *
  * @return string
  */
 public final function toHtml()
 {
     Mage::dispatchEvent('core_block_abstract_to_html_before', array('block' => $this));
     if (Mage::getStoreConfig('advanced/modules_disable_output/' . $this->getModuleName())) {
         return '';
     }
     /* START: Added by Cm_Diehard */
     // if setBlockIsDynamic and setSuppressOutput then we automatically render only a placeholder tag.
     if ($this->getBlockIsDynamic() && Mage::registry('diehard_lifetime')) {
         if ($this->getSuppressOutput()) {
             return '<div id="' . substr($this->getDiehardSelector(), 1) . '"></div>';
         } else {
             if (FALSE) {
                 return '<!-- DIEHARD_BLOCK|' . $this->getDiehardSelector() . '|' . json_encode($this->getCacheKeyInfo()) . ' -->';
             }
         }
     }
     /* END: Added by Cm_Diehard */
     $html = $this->_loadCache();
     if ($html === false) {
         $translate = Mage::getSingleton('core/translate');
         /** @var $translate Mage_Core_Model_Translate */
         if ($this->hasData('translate_inline')) {
             $translate->setTranslateInline($this->getData('translate_inline'));
         }
         $this->_beforeToHtml();
         $html = $this->_toHtml();
         $this->_saveCache($html);
         if ($this->hasData('translate_inline')) {
             $translate->setTranslateInline(true);
         }
     }
     $html = $this->_afterToHtml($html);
     /**
      * Check framing options
      */
     if ($this->_frameOpenTag) {
         $html = '<' . $this->_frameOpenTag . '>' . $html . '<' . $this->_frameCloseTag . '>';
     }
     /**
      * Use single transport object instance for all blocks
      */
     if (self::$_transportObject === null) {
         self::$_transportObject = new Varien_Object();
     }
     self::$_transportObject->setHtml($html);
     Mage::dispatchEvent('core_block_abstract_to_html_after', array('block' => $this, 'transport' => self::$_transportObject));
     $html = self::$_transportObject->getHtml();
     return $html;
 }
예제 #2
0
 /**
  * Produce and return block's html output
  *
  * It is a final method, but you can override _toHtml() method in descendants if needed.
  *
  * @return string
  */
 public final function toHtml()
 {
     Mage::dispatchEvent('core_block_abstract_to_html_before', array('block' => $this));
     if (Mage::getStoreConfig('advanced/modules_disable_output/' . $this->getModuleName())) {
         return '';
     }
     $html = $this->_loadCache();
     if ($html === false) {
         $translate = Mage::getSingleton('core/translate');
         /** @var $translate Mage_Core_Model_Translate */
         if ($this->hasData('translate_inline')) {
             $translate->setTranslateInline($this->getData('translate_inline'));
         }
         $this->_beforeToHtml();
         $html = $this->_toHtml();
         $this->_saveCache($html);
         if ($this->hasData('translate_inline')) {
             $translate->setTranslateInline(true);
         }
     }
     $html = $this->_afterToHtml($html);
     /**
      * Check framing options
      */
     if ($this->_frameOpenTag) {
         $html = '<' . $this->_frameOpenTag . '>' . $html . '<' . $this->_frameCloseTag . '>';
     }
     /**
      * Use single transport object instance for all blocks
      */
     if (self::$_transportObject === null) {
         self::$_transportObject = new Varien_Object();
     }
     self::$_transportObject->setHtml($html);
     Mage::dispatchEvent('core_block_abstract_to_html_after', array('block' => $this, 'transport' => self::$_transportObject));
     $html = self::$_transportObject->getHtml();
     return $html;
 }
예제 #3
0
파일: Abstract.php 프로젝트: eperrotta/lts2
 /**
  * Produce and return block's html output
  *
  * It is a final method, but you can override _toHtml() method in descendants if needed.
  *
  * @return string
  */
 public final function toHtml()
 {
     // MSP HACK: Start
     /* @var $ltsCache MSP_LTS2_Model_Cache */
     $ltsCache = Mage::getSingleton('msp_lts2/cache');
     if ($ltsCache->isActive() && !Mage::helper('msp_lts2')->isAdminArea() && $ltsCache->canCacheAction()) {
         $blockName = $this->getNameInLayout();
         $blockCacheHandling = $ltsCache->getBlockCacheHandling($blockName);
         if (in_array($blockCacheHandling, array(MSP_LTS2_Model_Rule_Cache::HANDLING_CACHE))) {
             $cacheKey = $ltsCache->getBlockCacheKey($blockName);
             if ($ltsCache->cacheItemExists($cacheKey)) {
                 $ltsCache->setCacheBlockStatus($blockName, MSP_LTS2_Model_Cache::CACHE_STATUS_HIT);
                 return $ltsCache->getBlockPlaceholder($blockName, true);
             }
         }
     }
     // MSP HACK: End
     Mage::dispatchEvent('core_block_abstract_to_html_before', array('block' => $this));
     if (Mage::getStoreConfig('advanced/modules_disable_output/' . $this->getModuleName())) {
         return '';
     }
     $html = $this->_loadCache();
     if ($html === false) {
         $translate = Mage::getSingleton('core/translate');
         /** @var $translate Mage_Core_Model_Translate */
         if ($this->hasData('translate_inline')) {
             $translate->setTranslateInline($this->getData('translate_inline'));
         }
         $this->_beforeToHtml();
         $html = $this->_toHtml();
         $this->_saveCache($html);
         if ($this->hasData('translate_inline')) {
             $translate->setTranslateInline(true);
         }
     }
     $html = $this->_afterToHtml($html);
     /**
      * Check framing options
      */
     if ($this->_frameOpenTag) {
         $html = '<' . $this->_frameOpenTag . '>' . $html . '<' . $this->_frameCloseTag . '>';
     }
     /**
      * Use single transport object instance for all blocks
      */
     if (self::$_transportObject === null) {
         self::$_transportObject = new Varien_Object();
     }
     self::$_transportObject->setHtml($html);
     Mage::dispatchEvent('core_block_abstract_to_html_after', array('block' => $this, 'transport' => self::$_transportObject));
     $html = self::$_transportObject->getHtml();
     // MSP HACK: Start
     if ($ltsCache->isActive() && !Mage::helper('msp_lts2')->isAdminArea() && $ltsCache->canCacheAction()) {
         if (in_array($blockCacheHandling, array(MSP_LTS2_Model_Rule_Cache::HANDLING_CACHE))) {
             $ltsCache->setBlock($blockName, $html);
         } elseif (in_array($blockCacheHandling, array(MSP_LTS2_Model_Rule_Cache::HANDLING_NOCACHE))) {
             $ltsCache->setTmpBlock($blockName, $html);
         }
         if (in_array($blockCacheHandling, array(MSP_LTS2_Model_Rule_Cache::HANDLING_CACHE, MSP_LTS2_Model_Rule_Cache::HANDLING_NOCACHE))) {
             return $ltsCache->getBlockPlaceholder($blockName);
         }
     }
     // MSP HACK: End
     return $html;
 }