|
Server : Apache System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64 User : p141464 ( 418825) PHP Version : 7.4.33.12 Disable Function : NONE Directory : /html/KMU-CSR-PLANER/wp-content/plugins/matomo/app/plugins/DevicesDetection/Columns/ |
Upload File : |
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
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 \Piwik\Plugins\DevicesDetection\Columns\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.';
/**
* @param Action|null $action
* @return string
*/
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';
}
// in privacy compliance mode, we can only detect/return generic device type, but not the model
if (DevicesDetection::isDeviceModelDetectionDisabledByCompliancePolicy($request->getIdSiteIfExists())) {
return $genericDevice;
}
$model = $parser->getModel();
if (!empty($model)) {
return mb_substr($model, 0, 100);
}
return $genericDevice;
}
/**
* @param Action|null $action
* @return mixed
*/
public function onAnyGoalConversion(Request $request, Visitor $visitor, $action)
{
return $visitor->getVisitorColumn($this->columnName);
}
}