Skip to content
Extraits de code Groupes Projets
Valider f85f7d61 rédigé par sgiehl's avatar sgiehl
Parcourir les fichiers

reimplemented caching; fixed detection of BOT 'os'

parent b826190f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -100,12 +100,12 @@ ...@@ -100,12 +100,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/piwik/device-detector.git", "url": "https://github.com/piwik/device-detector.git",
"reference": "d3ccb7938fa272a857c279850ffbb3d8fe04c0b7" "reference": "863ae43f5c68c15ce110516a0f7b11477e2a01c0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/piwik/device-detector/zipball/d3ccb7938fa272a857c279850ffbb3d8fe04c0b7", "url": "https://api.github.com/repos/piwik/device-detector/zipball/863ae43f5c68c15ce110516a0f7b11477e2a01c0",
"reference": "d3ccb7938fa272a857c279850ffbb3d8fe04c0b7", "reference": "863ae43f5c68c15ce110516a0f7b11477e2a01c0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
"parser", "parser",
"useragent" "useragent"
], ],
"time": "2014-05-25 17:45:14" "time": "2014-05-29 20:51:28"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
......
...@@ -16,7 +16,7 @@ use Exception; ...@@ -16,7 +16,7 @@ use Exception;
* It is for example used by the Tracker process to cache various settings and websites attributes in tmp/cache/tracker/* * It is for example used by the Tracker process to cache various settings and websites attributes in tmp/cache/tracker/*
* *
*/ */
class CacheFile class CacheFile implements \DeviceDetector\Cache\CacheInterface
{ {
// for testing purposes since tests run on both CLI/FPM (changes in CLI can't invalidate // for testing purposes since tests run on both CLI/FPM (changes in CLI can't invalidate
// opcache in FPM, so we have to invalidate before reading) // opcache in FPM, so we have to invalidate before reading)
......
...@@ -38,8 +38,10 @@ class Settings ...@@ -38,8 +38,10 @@ class Settings
$userAgent = $this->request->getUserAgent(); $userAgent = $this->request->getUserAgent();
$deviceDetector = new DeviceDetector($userAgent); $deviceDetector = new DeviceDetector($userAgent);
#$deviceDetector->setCache(new CacheFile('tracker', 86400)); $deviceDetector->discardBotInformation();
$deviceDetector->setCache(new CacheFile('tracker', 86400));
$deviceDetector->parse(); $deviceDetector->parse();
$aBrowserInfo = $deviceDetector->getClient(); $aBrowserInfo = $deviceDetector->getClient();
if ($aBrowserInfo['type'] != 'browser') { if ($aBrowserInfo['type'] != 'browser') {
// for now only track browsers // for now only track browsers
...@@ -49,8 +51,12 @@ class Settings ...@@ -49,8 +51,12 @@ class Settings
$browserName = !empty($aBrowserInfo['short_name']) ? $aBrowserInfo['short_name'] : 'UNK'; $browserName = !empty($aBrowserInfo['short_name']) ? $aBrowserInfo['short_name'] : 'UNK';
$browserVersion = !empty($aBrowserInfo['version']) ? $aBrowserInfo['version'] : ''; $browserVersion = !empty($aBrowserInfo['version']) ? $aBrowserInfo['version'] : '';
$os = $deviceDetector->getOS(); if ($deviceDetector->isBot()) {
$os = empty($os['short_name']) ? 'UNK' : $os['short_name']; $os = 'BOT';
} else {
$os = $deviceDetector->getOS();
$os = empty($os['short_name']) ? 'UNK' : $os['short_name'];
}
$browserLang = substr($this->request->getBrowserLanguage(), 0, 20); // limit the length of this string to match db $browserLang = substr($this->request->getBrowserLanguage(), 0, 20); // limit the length of this string to match db
$configurationHash = $this->getConfigHash( $configurationHash = $this->getConfigHash(
......
...@@ -694,6 +694,9 @@ class UserAgentParser ...@@ -694,6 +694,9 @@ class UserAgentParser
} }
if(class_exists('DeviceDetector\\Parser\\OperatingSystem')) { if(class_exists('DeviceDetector\\Parser\\OperatingSystem')) {
if ($osId == 'BOT') {
return 'Bot';
}
return DeviceDetector\Parser\OperatingSystem::getNameFromId($osId); return DeviceDetector\Parser\OperatingSystem::getNameFromId($osId);
} }
return false; return false;
......
...@@ -40,6 +40,16 @@ if (!defined('PIWIK_INCLUDE_PATH')) { ...@@ -40,6 +40,16 @@ if (!defined('PIWIK_INCLUDE_PATH')) {
@ignore_user_abort(true); @ignore_user_abort(true);
/*
* Manually require needed vendor libraries, as composers autorequire would do too much
*/
if (file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')) {
$vendorDirectory = PIWIK_INCLUDE_PATH . '/vendor';
} else {
$vendorDirectory = PIWIK_INCLUDE_PATH . '/../..';
}
require_once $vendorDirectory . '/autoload.php';
require_once PIWIK_INCLUDE_PATH . '/core/Plugin/Controller.php'; require_once PIWIK_INCLUDE_PATH . '/core/Plugin/Controller.php';
require_once PIWIK_INCLUDE_PATH . '/core/Plugin/ControllerAdmin.php'; require_once PIWIK_INCLUDE_PATH . '/core/Plugin/ControllerAdmin.php';
...@@ -82,16 +92,6 @@ require_once PIWIK_INCLUDE_PATH . '/core/Filesystem.php'; ...@@ -82,16 +92,6 @@ require_once PIWIK_INCLUDE_PATH . '/core/Filesystem.php';
require_once PIWIK_INCLUDE_PATH . '/core/Cookie.php'; require_once PIWIK_INCLUDE_PATH . '/core/Cookie.php';
require_once PIWIK_INCLUDE_PATH . '/core/Loader.php'; require_once PIWIK_INCLUDE_PATH . '/core/Loader.php';
/*
* Manually require needed vendor libraries, as composers autorequire would do too much
*/
if (file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')) {
$vendorDirectory = PIWIK_INCLUDE_PATH . '/vendor';
} else {
$vendorDirectory = PIWIK_INCLUDE_PATH . '/../..';
}
require_once $vendorDirectory . '/autoload.php';
session_cache_limiter('nocache'); session_cache_limiter('nocache');
@date_default_timezone_set('UTC'); @date_default_timezone_set('UTC');
......
...@@ -244,7 +244,7 @@ class DevicesDetection extends \Piwik\Plugin ...@@ -244,7 +244,7 @@ class DevicesDetection extends \Piwik\Plugin
$userAgent = $request->getUserAgent(); $userAgent = $request->getUserAgent();
$UAParser = new DeviceDetector($userAgent); $UAParser = new DeviceDetector($userAgent);
#$UAParser->setCache(new CacheFile('tracker', 86400)); $UAParser->setCache(new CacheFile('tracker', 86400));
$UAParser->parse(); $UAParser->parse();
$deviceInfo['config_browser_name'] = $UAParser->getClient("type") == 'browser' ? $UAParser->getClient("short_name") : 'UNK'; $deviceInfo['config_browser_name'] = $UAParser->getClient("type") == 'browser' ? $UAParser->getClient("short_name") : 'UNK';
$deviceInfo['config_browser_version'] = $UAParser->getClient("type") == 'browser' ? $UAParser->getClient("version") : 'UNK'; $deviceInfo['config_browser_version'] = $UAParser->getClient("type") == 'browser' ? $UAParser->getClient("version") : 'UNK';
......
...@@ -165,6 +165,9 @@ function getModelName($label) ...@@ -165,6 +165,9 @@ function getModelName($label)
function getOSFamilyFullNameExtended($label) function getOSFamilyFullNameExtended($label)
{ {
if ($label == 'BOT') {
return 'Bot';
}
$label = OperatingSystemParser::getOsFamily($label); $label = OperatingSystemParser::getOsFamily($label);
if($label !== false) { if($label !== false) {
return $label; return $label;
...@@ -183,6 +186,9 @@ function getOsFamilyLogoExtended($label) ...@@ -183,6 +186,9 @@ function getOsFamilyLogoExtended($label)
function getOsFullNameExtended($label) function getOsFullNameExtended($label)
{ {
if ($label == 'BOT') {
return 'Bot';
}
if (!empty($label) && $label != ";") { if (!empty($label) && $label != ";") {
$os = substr($label, 0, 3); $os = substr($label, 0, 3);
$ver = substr($label, 4, 15); $ver = substr($label, 4, 15);
......
...@@ -27,6 +27,9 @@ if (!defined('PIWIK_INCLUDE_SEARCH_PATH')) { ...@@ -27,6 +27,9 @@ if (!defined('PIWIK_INCLUDE_SEARCH_PATH')) {
error_reporting(E_ALL | E_NOTICE); error_reporting(E_ALL | E_NOTICE);
@date_default_timezone_set('UTC'); @date_default_timezone_set('UTC');
require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')
? PIWIK_INCLUDE_PATH . '/vendor/autoload.php' // Piwik is the main project
: PIWIK_INCLUDE_PATH . '/../../autoload.php'; // Piwik is installed as a dependency
require_once PIWIK_INCLUDE_PATH . '/libs/upgradephp/upgrade.php'; require_once PIWIK_INCLUDE_PATH . '/libs/upgradephp/upgrade.php';
require_once PIWIK_INCLUDE_PATH . '/core/testMinimumPhpVersion.php'; require_once PIWIK_INCLUDE_PATH . '/core/testMinimumPhpVersion.php';
...@@ -37,9 +40,6 @@ require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/IntegrationTestCase.php'; ...@@ -37,9 +40,6 @@ require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/IntegrationTestCase.php';
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/FakeAccess.php'; require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/FakeAccess.php';
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockPiwikOption.php'; require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockPiwikOption.php';
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/TestingEnvironment.php'; require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/TestingEnvironment.php';
require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')
? PIWIK_INCLUDE_PATH . '/vendor/autoload.php' // Piwik is the main project
: PIWIK_INCLUDE_PATH . '/../../autoload.php'; // Piwik is installed as a dependency
\Piwik\Profiler::setupProfilerXHProf( $mainRun = true ); \Piwik\Profiler::setupProfilerXHProf( $mainRun = true );
......
...@@ -9,6 +9,10 @@ if (!defined('PIWIK_USER_PATH')) { ...@@ -9,6 +9,10 @@ if (!defined('PIWIK_USER_PATH')) {
define('PIWIK_USER_PATH', PIWIK_INCLUDE_PATH); define('PIWIK_USER_PATH', PIWIK_INCLUDE_PATH);
} }
require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')
? PIWIK_INCLUDE_PATH . '/vendor/autoload.php' // Piwik is the main project
: PIWIK_INCLUDE_PATH . '/../../autoload.php'; // Piwik is installed as a dependency
require_once PIWIK_INCLUDE_PATH . '/core/Loader.php'; require_once PIWIK_INCLUDE_PATH . '/core/Loader.php';
require_once PIWIK_INCLUDE_PATH . '/core/EventDispatcher.php'; require_once PIWIK_INCLUDE_PATH . '/core/EventDispatcher.php';
require_once PIWIK_INCLUDE_PATH . '/core/Piwik.php'; require_once PIWIK_INCLUDE_PATH . '/core/Piwik.php';
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter