update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
20
www/analytics/plugins/DevicesDetection/Columns/Base.php
Normal file
20
www/analytics/plugins/DevicesDetection/Columns/Base.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\DeviceDetectorFactory;
|
||||
use Piwik\Plugin\Dimension\VisitDimension;
|
||||
|
||||
abstract class Base extends VisitDimension
|
||||
{
|
||||
protected function getUAParser($userAgent)
|
||||
{
|
||||
return DeviceDetectorFactory::getInstance($userAgent);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\DevicesDetection\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
|
||||
class BrowserEngine extends Base
|
||||
{
|
||||
protected $columnName = 'config_browser_engine';
|
||||
protected $columnType = 'VARCHAR(10) NOT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('browserEngine');
|
||||
$segment->setName('DevicesDetection_BrowserEngine');
|
||||
$segment->setAcceptedValues('Trident, WebKit, Presto, Gecko, Blink, etc.');
|
||||
$segment->setSuggestedValuesCallback('\DeviceDetector\Parser\Client\Browser\Engine::getAvailableEngines');
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_BrowserEngine');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
$aBrowserInfo = $parser->getClient();
|
||||
|
||||
if (!empty($aBrowserInfo['engine'])) {
|
||||
|
||||
return $aBrowserInfo['engine'];
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\DevicesDetection\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
|
||||
class BrowserName extends Base
|
||||
{
|
||||
protected $columnName = 'config_browser_name';
|
||||
protected $columnType = 'VARCHAR(10) NOT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('browserCode');
|
||||
$segment->setName('DevicesDetection_ColumnBrowser');
|
||||
$segment->setAcceptedValues('FF, IE, CH, SF, OP, etc.');
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_ColumnBrowser');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
$aBrowserInfo = $parser->getClient();
|
||||
|
||||
if (!empty($aBrowserInfo['short_name'])) {
|
||||
|
||||
return $aBrowserInfo['short_name'];
|
||||
}
|
||||
|
||||
return 'UNK';
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\DevicesDetection\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
|
||||
class BrowserVersion extends Base
|
||||
{
|
||||
protected $columnName = 'config_browser_version';
|
||||
protected $columnType = 'VARCHAR(20) NOT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('browserVersion');
|
||||
$segment->setName('DevicesDetection_BrowserVersion');
|
||||
$segment->setAcceptedValues('1.0, 8.0, etc.');
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_BrowserVersion');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
$aBrowserInfo = $parser->getClient();
|
||||
|
||||
if (!empty($aBrowserInfo['version'])) {
|
||||
|
||||
return $aBrowserInfo['version'];
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use DeviceDetector\Parser\Device\DeviceParserAbstract;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\DevicesDetection\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
|
||||
class DeviceBrand extends Base
|
||||
{
|
||||
protected $columnName = 'config_device_brand';
|
||||
protected $columnType = 'VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL';
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_DeviceBrand');
|
||||
}
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$brands = DeviceParserAbstract::$deviceBrands;
|
||||
$brandList = implode(", ", $brands);
|
||||
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('deviceBrand');
|
||||
$segment->setName('DevicesDetection_DeviceBrand');
|
||||
$segment->setAcceptedValues($brandList);
|
||||
$segment->setSqlFilter(function ($brand) use ($brandList, $brands) {
|
||||
if ($brand == Piwik::translate('General_Unknown')) {
|
||||
return '';
|
||||
}
|
||||
$index = array_search(trim(urldecode($brand)), $brands);
|
||||
if ($index === false) {
|
||||
throw new \Exception("deviceBrand segment must be one of: $brandList");
|
||||
}
|
||||
return $index;
|
||||
});
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
return $parser->getBrand();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
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';
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_DeviceModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
return $parser->getModel();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use DeviceDetector;
|
||||
use Exception;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
use DeviceDetector\Parser\Device\DeviceParserAbstract as DeviceParser;
|
||||
|
||||
class DeviceType extends Base
|
||||
{
|
||||
protected $columnName = 'config_device_type';
|
||||
protected $columnType = 'TINYINT( 100 ) NULL DEFAULT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$deviceTypes = DeviceParser::getAvailableDeviceTypeNames();
|
||||
$deviceTypeList = implode(", ", $deviceTypes);
|
||||
|
||||
$segment = new Segment();
|
||||
$segment->setCategory('General_Visit');
|
||||
$segment->setSegment('deviceType');
|
||||
$segment->setName('DevicesDetection_DeviceType');
|
||||
$segment->setAcceptedValues($deviceTypeList);
|
||||
$segment->setSqlFilter(function ($type) use ($deviceTypeList, $deviceTypes) {
|
||||
$index = array_search(strtolower(trim(urldecode($type))), $deviceTypes);
|
||||
if ($index === false) {
|
||||
throw new Exception("deviceType segment must be one of: $deviceTypeList");
|
||||
}
|
||||
return $index;
|
||||
});
|
||||
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_DeviceType');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
return $parser->getDevice();
|
||||
}
|
||||
}
|
||||
57
www/analytics/plugins/DevicesDetection/Columns/Os.php
Normal file
57
www/analytics/plugins/DevicesDetection/Columns/Os.php
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\DevicesDetection\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Settings;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
|
||||
class Os extends Base
|
||||
{
|
||||
protected $columnName = 'config_os';
|
||||
protected $columnType = 'CHAR(3) NOT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('operatingSystemCode');
|
||||
$segment->setName('DevicesDetection_ColumnOperatingSystem');
|
||||
$segment->setAcceptedValues('WIN, MAC, LIN, AND, IPD, etc.');
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_OperatingSystemFamily');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
if ($parser->isBot()) {
|
||||
$os = Settings::OS_BOT;
|
||||
} else {
|
||||
$os = $parser->getOS();
|
||||
$os = empty($os['short_name']) ? 'UNK' : $os['short_name'];
|
||||
}
|
||||
|
||||
return $os;
|
||||
}
|
||||
}
|
||||
49
www/analytics/plugins/DevicesDetection/Columns/OsVersion.php
Normal file
49
www/analytics/plugins/DevicesDetection/Columns/OsVersion.php
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?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\DevicesDetection\Columns;
|
||||
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\DevicesDetection\Segment;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Tracker\Action;
|
||||
|
||||
class OsVersion extends Base
|
||||
{
|
||||
protected $columnName = 'config_os_version';
|
||||
protected $columnType = 'VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('operatingSystemVersion');
|
||||
$segment->setName('DevicesDetection_ColumnOperatingSystemVersion');
|
||||
$segment->setAcceptedValues('XP, 7, 2.3, 5.1, ...');
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('DevicesDetection_OperatingSystemVersions');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
$userAgent = $request->getUserAgent();
|
||||
$parser = $this->getUAParser($userAgent);
|
||||
|
||||
return $parser->getOs('version');
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue