Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <benaka@piwik.pro>2015-07-08 07:50:00 +0300
committerdiosmosis <benaka@piwik.pro>2015-08-06 17:37:58 +0300
commit2ba74fba6bcb83a55963309d05cdc31c9d977103 (patch)
tree9106e6ed69f4eec27bc8cf608ba8a700171c0f30 /plugins/Heartbeat
parentaeb17d5958be81b4588a535c7a7a7a0c97724644 (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.php19
-rw-r--r--plugins/Heartbeat/Tracker/PingRequestProcessor.php37
-rw-r--r--plugins/Heartbeat/config/config.php9
-rw-r--r--plugins/Heartbeat/plugin.json3
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