diff --git a/app/code/community/Mpchadwick/PageCacheHitRate/Model/Observer.php b/app/code/community/Mpchadwick/PageCacheHitRate/Model/Observer.php index e07c76e..1d56ac6 100644 --- a/app/code/community/Mpchadwick/PageCacheHitRate/Model/Observer.php +++ b/app/code/community/Mpchadwick/PageCacheHitRate/Model/Observer.php @@ -13,6 +13,7 @@ class Mpchadwick_PageCacheHitRate_Model_Observer */ public function handleControllerFrontSendResponseBefore(Varien_Event_Observer $observer) { + $config = Mage::getModel('mpchadwick_pagecachehitrate/config'); $trackers = $config->get('trackers'); if (!$trackers) { @@ -25,6 +26,7 @@ public function handleControllerFrontSendResponseBefore(Varien_Event_Observer $o $params = $paramProvider->baseParams(true) + array( 'type' => $type, 'route' => $this->trackerRoute(), + 'cacheable' => $this->isRequestCacheable() ); $factory = Mage::getModel('mpchadwick_pagecachehitrate/trackerFactory'); @@ -40,6 +42,20 @@ public function handleControllerFrontSendResponseBefore(Varien_Event_Observer $o } } + /** + * Determine this request is cacheable in FPC + * + * @return bool + */ + protected function isRequestCacheable() + { + $request = Mage::app()->getRequest(); + $processor = Mage::getSingleton('enterprise_pagecache/processor'); + $subprocessor = $processor->getMetadata('cache_subprocessor'); + + return $subprocessor !== null && $processor->canProcessRequest($request); + } + /** * Get the type of response. * diff --git a/app/code/community/Mpchadwick/PageCacheHitRate/Model/Tracker/ParamProvider.php b/app/code/community/Mpchadwick/PageCacheHitRate/Model/Tracker/ParamProvider.php index 4409651..25681d1 100644 --- a/app/code/community/Mpchadwick/PageCacheHitRate/Model/Tracker/ParamProvider.php +++ b/app/code/community/Mpchadwick/PageCacheHitRate/Model/Tracker/ParamProvider.php @@ -31,6 +31,7 @@ public function baseParams($originalRequest = false) 'userAgent' => $this->userAgent, 'isBot' => $this->isBot, ); + } protected function getUrl($originalRequest)