diff options
author | diosmosis <benaka@piwik.pro> | 2015-07-08 07:50:00 +0300 |
---|---|---|
committer | diosmosis <benaka@piwik.pro> | 2015-08-06 17:37:58 +0300 |
commit | 2ba74fba6bcb83a55963309d05cdc31c9d977103 (patch) | |
tree | 9106e6ed69f4eec27bc8cf608ba8a700171c0f30 /plugins/Heartbeat | |
parent | aeb17d5958be81b4588a535c7a7a7a0c97724644 (diff) |
Add new RequestProcessor to Actions plugin for action detection + new RequestProcessor for ping request handling. Ping request handling is performed in new Heartbeat plugin. Also added a new method to Plugin, isTrackerPlugin for plugins to override if they are tracker plugins, but don't have a dimension or implement a tracker method.
Diffstat (limited to 'plugins/Heartbeat')
-rw-r--r-- | plugins/Heartbeat/Heartbeat.php | 19 | ||||
-rw-r--r-- | plugins/Heartbeat/Tracker/PingRequestProcessor.php | 37 | ||||
-rw-r--r-- | plugins/Heartbeat/config/config.php | 9 | ||||
-rw-r--r-- | plugins/Heartbeat/plugin.json | 3 |
4 files changed, 68 insertions, 0 deletions
diff --git a/plugins/Heartbeat/Heartbeat.php b/plugins/Heartbeat/Heartbeat.php new file mode 100644 index 0000000000..688ac72c65 --- /dev/null +++ b/plugins/Heartbeat/Heartbeat.php @@ -0,0 +1,19 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Plugins\Heartbeat; + +use Piwik\Plugin; + +class Heartbeat extends Plugin +{ + public function isTrackerPlugin() + { + return true; + } +} diff --git a/plugins/Heartbeat/Tracker/PingRequestProcessor.php b/plugins/Heartbeat/Tracker/PingRequestProcessor.php new file mode 100644 index 0000000000..44224ce0ab --- /dev/null +++ b/plugins/Heartbeat/Tracker/PingRequestProcessor.php @@ -0,0 +1,37 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ +namespace Piwik\Plugins\Heartbeat\Tracker; + +use Piwik\Common; +use Piwik\Tracker\Request; +use Piwik\Tracker\RequestProcessor; +use Piwik\Tracker\Visit\VisitProperties; + +/** + * TODO + */ +class PingRequestProcessor extends RequestProcessor +{ + public function processRequestParams(VisitProperties $visitProperties, Request $request) + { + if ($this->isPingRequest($request)) { + // on a ping request that is received before the standard visit length, we just update the visit time w/o adding a new action + Common::printDebug("-> ping=1 request: we do not track a new action nor a new visit nor any goal."); + + $visitProperties->setRequestMetadata('Actions', 'action', null); + + $visitProperties->setRequestMetadata('Goals', 'someGoalsConverted', false); + $visitProperties->setRequestMetadata('Goals', 'visitIsConverted', false); + } + } + + private function isPingRequest(Request $request) + { + return $request->getParam('ping') == 1; + } +}
\ No newline at end of file diff --git a/plugins/Heartbeat/config/config.php b/plugins/Heartbeat/config/config.php new file mode 100644 index 0000000000..6f7a1417ab --- /dev/null +++ b/plugins/Heartbeat/config/config.php @@ -0,0 +1,9 @@ +<?php + +return array( + + 'tracker.request.processors' => DI\add(array( + DI\get('Piwik\Plugins\Heartbeat\Tracker\PingRequestProcessor'), + )), + +); diff --git a/plugins/Heartbeat/plugin.json b/plugins/Heartbeat/plugin.json new file mode 100644 index 0000000000..3d028b75db --- /dev/null +++ b/plugins/Heartbeat/plugin.json @@ -0,0 +1,3 @@ +{ + "description": "Handles ping tracker requests." +}
\ No newline at end of file |