diff options
Diffstat (limited to 'plugins/DevicesDetection/Columns')
-rw-r--r-- | plugins/DevicesDetection/Columns/Base.php | 38 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/BrowserName.php | 31 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/BrowserVersion.php | 31 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/DeviceBrand.php | 31 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/DeviceModel.php | 31 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/DeviceType.php | 31 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/Os.php | 31 | ||||
-rw-r--r-- | plugins/DevicesDetection/Columns/OsVersion.php | 31 |
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"); + } +} |