diff --git a/src/code/Cache/Block/Messages.php b/src/code/Cache/Block/Messages.php index 7e61778..5b207d6 100644 --- a/src/code/Cache/Block/Messages.php +++ b/src/code/Cache/Block/Messages.php @@ -11,12 +11,16 @@ class Made_Cache_Block_Messages extends Mage_Core_Block_Messages { protected function _toHtml() { - if (Mage::helper('cache/varnish')->shouldUse() - && !$this->getBypassVarnish()) { + $helper = Mage::helper('cache/varnish'); + $request = Mage::app()->getRequest(); + if ($helper->shouldUse() + && $helper->getRequestTtl($request) + && !$this->getBypassVarnish() + ) { return Mage::helper('cache/varnish') ->getEsiTag('madecache/varnish/messages'); } return parent::_toHtml(); } -} \ No newline at end of file +} diff --git a/src/code/Cache/Model/VarnishObserver.php b/src/code/Cache/Model/VarnishObserver.php index daf0148..df69820 100644 --- a/src/code/Cache/Model/VarnishObserver.php +++ b/src/code/Cache/Model/VarnishObserver.php @@ -60,6 +60,11 @@ public function addLayoutHandle(Varien_Event_Observer $observer) if (!Mage::helper('cache/varnish')->shouldUse()) { return; } + $request = Mage::app()->getRequest(); + + if (!Mage::helper('cache/varnish')->getRequestTtl($request)) { + return; + } $observer->getEvent() ->getLayout() @@ -77,6 +82,14 @@ public function addEsiTag(Varien_Event_Observer $observer) if (!Mage::helper('cache/varnish')->shouldUse()) { return; } + $headers = Mage::app()->getResponse()->getHeaders(); + foreach ($headers as $header) { + if (strtolower($header['name']) == 'content-type') { + if ($header['value'] == 'application/json') { + return; + } + } + } $block = $observer->getEvent()->getBlock();