diff --git a/plugins/DevicesDetection/functions.php b/plugins/DevicesDetection/functions.php index 7858b439703f68650f3dba6c88636abbf03192b5..b8ff3a8854cb6ab4a3b5631e95dd7880cba389be 100644 --- a/plugins/DevicesDetection/functions.php +++ b/plugins/DevicesDetection/functions.php @@ -37,8 +37,9 @@ function getBrowserFamilyFullNameExtended($label) function getBrowserFamilyLogoExtended($label) { - if (!empty($label) && array_key_exists($label, BrowserParser::getAvailableBrowserFamilies())) { - return getBrowserLogoExtended(BrowserParser::getAvailableBrowserFamilies()[$label][0]); + $browserFamilies = BrowserParser::getAvailableBrowserFamilies(); + if (!empty($label) && array_key_exists($label, $browserFamilies)) { + return getBrowserLogoExtended($browserFamilies[$label][0]); } return getBrowserLogoExtended($label); } @@ -47,8 +48,9 @@ function getBrowserNameExtended($label) { $short = substr($label, 0, 2); $ver = substr($label, 3, 10); - if (array_key_exists($short, BrowserParser::getAvailableBrowsers())) { - return trim(ucfirst(BrowserParser::getAvailableBrowsers()[$short]) . ' ' . $ver); + $browsers = BrowserParser::getAvailableBrowsers(); + if (array_key_exists($short, $browsers)) { + return trim(ucfirst($browsers[$short]) . ' ' . $ver); } else { return Piwik::translate('General_Unknown'); } @@ -82,10 +84,12 @@ function getBrowserLogoExtended($short) $family = getBrowserFamilyFullNameExtended($short); + $browserFamilies = BrowserParser::getAvailableBrowserFamilies(); + if (!empty($short) && array_key_exists($short, BrowserParser::getAvailableBrowsers()) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, $short))) { return sprintf($path, $short); - } elseif (!empty($short) && array_key_exists($family, BrowserParser::getAvailableBrowserFamilies()) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, BrowserParser::getAvailableBrowserFamilies()[$family][0]))) { - return sprintf($path, BrowserParser::getAvailableBrowserFamilies()[$family][0]); + } elseif (!empty($short) && array_key_exists($family, $browserFamilies) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, $browserFamilies[$family][0]))) { + return sprintf($path, $browserFamilies[$family][0]); } return sprintf($path, 'UNK'); } @@ -112,8 +116,11 @@ function getDeviceTypeLabel($label) 'smart display' => 'DevicesDetection_SmartDisplay', 'camera' => 'DevicesDetection_Camera' ); - if (in_array($label, DeviceParser::getAvailableDeviceTypes()) && isset($translations[array_search($label, DeviceParser::getAvailableDeviceTypes())])) { - return Piwik::translate($translations[array_search($label, DeviceParser::getAvailableDeviceTypes())]); + + $deviceTypes = DeviceParser::getAvailableDeviceTypes(); + + if (in_array($label, $deviceTypes) && isset($translations[array_search($label, $deviceTypes)])) { + return Piwik::translate($translations[array_search($label, $deviceTypes)]); } else if (isset($translations[$label])) { return Piwik::translate($translations[$label]); } else { @@ -167,8 +174,9 @@ function getOSFamilyFullNameExtended($label) function getOsFamilyLogoExtended($label) { - if (!empty($label) && array_key_exists($label, OperatingSystemParser::getAvailableOperatingSystemFamilies())) { - return getOsLogoExtended(OperatingSystemParser::getAvailableOperatingSystemFamilies()[$label][0]); + $osFamilies = OperatingSystemParser::getAvailableOperatingSystemFamilies(); + if (!empty($label) && array_key_exists($label, $osFamilies)) { + return getOsLogoExtended($osFamilies[$label][0]); } return getOsLogoExtended($label); } @@ -212,11 +220,12 @@ function getOsLogoExtended($short) } $family = getOsFamilyFullNameExtended($short); + $osFamilies = OperatingSystemParser::getAvailableOperatingSystemFamilies(); if (!empty($short) && array_key_exists($short, OperatingSystemParser::getAvailableOperatingSystems()) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, $short))) { return sprintf($path, $short); - } elseif (!empty($family) && array_key_exists($family, OperatingSystemParser::getAvailableOperatingSystemFamilies()) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, OperatingSystemParser::getAvailableOperatingSystemFamilies()[$family][0]))) { - return sprintf($path, OperatingSystemParser::getAvailableOperatingSystemFamilies()[$family][0]); + } elseif (!empty($family) && array_key_exists($family, $osFamilies) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, $osFamilies[$family][0]))) { + return sprintf($path, $osFamilies[$family][0]); } return sprintf($path, 'UNK'); }