/** * Retrieve block tags and add it to processor * * @param Varien_Event_Observer $observer * @return Enterprise_PageCache_Model_Observer */ public function registerBlockTags(Varien_Event_Observer $observer) { if (!$this->isCacheEnabled()) { return $this; } /** @var $block Mage_Core_Block_Abstract*/ $block = $observer->getEvent()->getBlock(); $contextBlock = $this->_getContextBlock($block); $this->unregisterContext($block); $tags = $block->getCacheTags(); if (empty($tags)) { return $this; } $key = array_search(Mage_Core_Block_Abstract::CACHE_GROUP, $tags); if (false !== $key) { unset($tags[$key]); } if (empty($tags)) { return $this; } if (!empty($contextBlock)) { if ($contextBlock->getType() != $block->getType()) { $contextBlock->addCacheTag($tags); } else { $block->addCacheTag($tags); } } else { $this->_processor->addRequestTag($tags); } return $this; }
/** * model_load_after event processor. Collect tags of all loaded entities * * @param $observer */ public function registerModelTag(Varien_Event_Observer $observer) { if (!$this->isCacheEnabled()) { return $this; } $object = $observer->getEvent()->getObject(); if ($object && $object->getId()) { $tags = $object->getCacheIdTags(); if ($tags) { $this->_processor->addRequestTag($tags); } } }
/** * Retrieve block tags and add it to processor * * @param Varien_Event_Observer $observer * @return Enterprise_PageCache_Model_Observer */ public function registerBlockTags(Varien_Event_Observer $observer) { if (!$this->isCacheEnabled()) { return $this; } /** @var $block Mage_Core_Block_Abstract*/ $block = $observer->getEvent()->getBlock(); if (in_array($block->getType(), array_keys($this->_config->getDeclaredPlaceholders()))) { return $this; } $tags = $block->getCacheTags(); if (empty($tags)) { return $this; } $key = array_search(Mage_Core_Block_Abstract::CACHE_GROUP, $tags); if (false !== $key) { unset($tags[$key]); } if (empty($tags)) { return $this; } $this->_processor->addRequestTag($tags); return $this; }