| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\DevicesDetection\Columns; |
|
|
| use Piwik\Plugins\DevicesDetection\DevicesDetection; |
| use Piwik\Tracker\Request; |
| use Piwik\Tracker\Visitor; |
| use Piwik\Tracker\Action; |
|
|
| class DeviceModel extends Base |
| { |
| protected $columnName = 'config_device_model'; |
| protected $columnType = 'VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL'; |
| protected $type = self::TYPE_TEXT; |
| protected $nameSingular = 'DevicesDetection_DeviceModel'; |
| protected $namePlural = 'DevicesDetection_DeviceModels'; |
| protected $segmentName = 'deviceModel'; |
| protected $acceptValues = 'iPad, Nexus 5, Galaxy S5, Fire TV, etc.'; |
|
|
| |
| |
| |
| |
| public function onNewVisit(Request $request, Visitor $visitor, $action) |
| { |
| $parser = $this->getUAParser($request->getUserAgent(), $request->getClientHints()); |
| $genericDevice = ''; |
|
|
| $deviceType = $parser->getDeviceName(); |
| if (!empty($deviceType)) { |
| $genericDevice = 'generic ' . $deviceType; |
| } elseif ($parser->isMobile()) { |
| $genericDevice = 'generic mobile'; |
| } |
|
|
| |
| if (DevicesDetection::isDeviceModelDetectionDisabledByCompliancePolicy($request->getIdSiteIfExists())) { |
| return $genericDevice; |
| } |
|
|
| $model = $parser->getModel(); |
|
|
| if (!empty($model)) { |
| return mb_substr($model, 0, 100); |
| } |
|
|
| return $genericDevice; |
| } |
|
|
| |
| |
| |
| |
| public function onAnyGoalConversion(Request $request, Visitor $visitor, $action) |
| { |
| return $visitor->getVisitorColumn($this->columnName); |
| } |
| } |
|
|