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:
Diffstat (limited to 'plugins/DevicesDetection/Columns')
-rw-r--r--plugins/DevicesDetection/Columns/Base.php38
-rw-r--r--plugins/DevicesDetection/Columns/BrowserName.php31
-rw-r--r--plugins/DevicesDetection/Columns/BrowserVersion.php31
-rw-r--r--plugins/DevicesDetection/Columns/DeviceBrand.php31
-rw-r--r--plugins/DevicesDetection/Columns/DeviceModel.php31
-rw-r--r--plugins/DevicesDetection/Columns/DeviceType.php31
-rw-r--r--plugins/DevicesDetection/Columns/Os.php31
-rw-r--r--plugins/DevicesDetection/Columns/OsVersion.php31
8 files changed, 255 insertions, 0 deletions
diff --git a/plugins/DevicesDetection/Columns/Base.php b/plugins/DevicesDetection/Columns/Base.php
new file mode 100644
index 0000000000..ffe9d45bdb
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/Base.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use \DeviceDetector;
+use Piwik\CacheFile;
+use Piwik\Plugin\VisitDimension;
+
+abstract class Base extends VisitDimension
+{
+ private static $uaParser = array();
+
+ /**
+ * @param string $userAgent
+ * @return DeviceDetector
+ */
+ public function getUAParser($userAgent)
+ {
+ $key = md5($userAgent);
+
+ if (!array_key_exists($key, self::$uaParser)) {
+
+ $UAParser = new \DeviceDetector($userAgent);
+ $UAParser->setCache(new CacheFile('tracker', 86400));
+ $UAParser->parse();
+
+ self::$uaParser[$key] = $UAParser;
+ }
+
+ return self::$uaParser[$key];
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/BrowserName.php b/plugins/DevicesDetection/Columns/BrowserName.php
new file mode 100644
index 0000000000..6536722742
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/BrowserName.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class BrowserName extends Base
+{
+ protected $fieldName = 'config_browser_name';
+ protected $fieldType = 'VARCHAR(10) NOT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('UserSettings_BrowserFamilies');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getBrowser("short_name");
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/BrowserVersion.php b/plugins/DevicesDetection/Columns/BrowserVersion.php
new file mode 100644
index 0000000000..10b37c3548
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/BrowserVersion.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class BrowserVersion extends Base
+{
+ protected $fieldName = 'config_browser_version';
+ protected $fieldType = 'VARCHAR(20) NOT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('DevicesDetection_BrowserVersions');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getBrowser("version");
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/DeviceBrand.php b/plugins/DevicesDetection/Columns/DeviceBrand.php
new file mode 100644
index 0000000000..5a37a53718
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/DeviceBrand.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class DeviceBrand extends Base
+{
+ protected $fieldName = 'config_device_brand';
+ protected $fieldType = 'VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('DevicesDetection_DeviceBrand');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getBrand();
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/DeviceModel.php b/plugins/DevicesDetection/Columns/DeviceModel.php
new file mode 100644
index 0000000000..a340503af3
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/DeviceModel.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class DeviceModel extends Base
+{
+ protected $fieldName = 'config_device_model';
+ protected $fieldType = 'VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('DevicesDetection_DeviceModel');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getModel();
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/DeviceType.php b/plugins/DevicesDetection/Columns/DeviceType.php
new file mode 100644
index 0000000000..e566a1a25c
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/DeviceType.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class DeviceType extends Base
+{
+ protected $fieldName = 'config_device_type';
+ protected $fieldType = 'TINYINT( 100 ) NULL DEFAULT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('DevicesDetection_DeviceType');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getDevice();
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/Os.php b/plugins/DevicesDetection/Columns/Os.php
new file mode 100644
index 0000000000..edaf32949a
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/Os.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class Os extends Base
+{
+ protected $fieldName = 'config_os';
+ protected $fieldType = 'CHAR(3) NOT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('DevicesDetection_OperatingSystemFamilies');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getOs("short_name");
+ }
+}
diff --git a/plugins/DevicesDetection/Columns/OsVersion.php b/plugins/DevicesDetection/Columns/OsVersion.php
new file mode 100644
index 0000000000..088ca58572
--- /dev/null
+++ b/plugins/DevicesDetection/Columns/OsVersion.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection\Columns;
+
+use Piwik\Piwik;
+use Piwik\Tracker\Request;
+
+class OsVersion extends Base
+{
+ protected $fieldName = 'config_os_version';
+ protected $fieldType = 'VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL';
+
+ public function getName()
+ {
+ return Piwik::translate('DevicesDetection_OperatingSystemVersions');
+ }
+
+ public function onNewVisit(Request $request, $visit)
+ {
+ $userAgent = $request->getUserAgent();
+ $parser = $this->getUAParser($userAgent);
+
+ return $parser->getOs("version");
+ }
+}