$family) { if (in_array($label, $family)) { return $name; } } return Piwik::translate('General_Unknown'); } function getBrowserFamilyLogoExtended($label) { if (array_key_exists($label, DeviceDetector::$browserFamilies)) { return getBrowserLogoExtended(DeviceDetector::$browserFamilies[$label][0]); } return getBrowserLogoExtended($label); } function getBrowserNameExtended($label) { $short = substr($label, 0, 2); $ver = substr($label, 3, 10); if (array_key_exists($short, DeviceDetector::$browsers)) { return trim(ucfirst(DeviceDetector::$browsers[$short]) . ' ' . $ver); } else { return Piwik::translate('General_Unknown'); } } /** * Returns the path to the logo for the given browser * * First try to find a logo for the given short code * If none can be found try to find a logo for the browser family * Return unkown logo otherwise * * @param string $short Shortcode or name of browser * * @return string path to image */ function getBrowserLogoExtended($short) { $path = 'plugins/UserSettings/images/browsers/%s.gif'; // If name is given instead of short code, try to find matching shortcode if (strlen($short) > 2) { if (in_array($short, DeviceDetector::$browsers)) { $flippedBrowsers = array_flip(DeviceDetector::$browsers); $short = $flippedBrowsers[$short]; } else { $short = substr($short, 0, 2); } } $family = getBrowserFamilyFullNameExtended($short); if (array_key_exists($short, DeviceDetector::$browsers) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, $short))) { return sprintf($path, $short); } elseif (array_key_exists($family, DeviceDetector::$browserFamilies) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, DeviceDetector::$browserFamilies[$family][0]))) { return sprintf($path, DeviceDetector::$browserFamilies[$family][0]); } return sprintf($path, 'UNK'); } function getDeviceBrandLabel($label) { if (array_key_exists($label, DeviceDetector::$deviceBrands)) { return ucfirst(DeviceDetector::$deviceBrands[$label]); } else { return Piwik::translate('General_Unknown'); } } function getDeviceTypeLabel($label) { $translations = array( 'desktop' => 'General_Desktop', 'smartphone' => 'DevicesDetection_Smartphone', 'tablet' => 'DevicesDetection_Tablet', 'feature phone' => 'DevicesDetection_FeaturePhone', 'console' => 'DevicesDetection_Console', 'tv' => 'DevicesDetection_TV', 'car browser' => 'DevicesDetection_CarBbrowser', 'smart display' => 'DevicesDetection_SmartDisplay', 'camera' => 'DevicesDetection_Camera' ); if (isset(DeviceDetector::$deviceTypes[$label]) && isset($translations[DeviceDetector::$deviceTypes[$label]])) { return Piwik::translate($translations[DeviceDetector::$deviceTypes[$label]]); } else if (isset($translations[$label])) { return Piwik::translate($translations[$label]); } else { return Piwik::translate('General_Unknown'); } } function getDeviceTypeLogo($label) { if (is_numeric($label) && isset(DeviceDetector::$deviceTypes[$label])) { $label = DeviceDetector::$deviceTypes[$label]; } $label = strtolower($label); $deviceTypeLogos = Array( "desktop" => "normal.gif", "smartphone" => "smartphone.png", "tablet" => "tablet.png", "tv" => "tv.png", "feature phone" => "mobile.gif", "console" => "console.gif", "car browser" => "carbrowser.png", "camera" => "camera.png"); if (!array_key_exists($label, $deviceTypeLogos)) { $label = 'unknown.gif'; } else { $label = $deviceTypeLogos[$label]; } $path = 'plugins/DevicesDetection/images/screens/' . $label; return $path; } function getModelName($label) { if (!$label) { return Piwik::translate('General_Unknown'); } return $label; } function getOSFamilyFullNameExtended($label) { $label = DeviceDetector::getOsFamily($label); if($label !== false) { return $label; } return Piwik::translate('General_Unknown'); } function getOsFamilyLogoExtended($label) { if (array_key_exists($label, DeviceDetector::$osFamilies)) { return getOsLogoExtended(DeviceDetector::$osFamilies[$label][0]); } return getOsLogoExtended($label); } function getOsFullNameExtended($label) { if (!empty($label) && $label != ";") { $os = substr($label, 0, 3); $ver = substr($label, 4, 15); $name = DeviceDetector::getOsNameFromId($os, $ver); if (!empty($name)) { return $name; } } return Piwik::translate('General_Unknown'); } /** * Returns the path to the logo for the given OS * * First try to find a logo for the given short code * If none can be found try to find a logo for the os family * Return unkown logo otherwise * * @param string $short Shortcode or name of OS * * @return string path to image */ function getOsLogoExtended($short) { $path = 'plugins/UserSettings/images/os/%s.gif'; // If name is given instead of short code, try to find matching shortcode if (strlen($short) > 3) { if (array_key_exists($short, DeviceDetector::$osShorts)) { $short = DeviceDetector::$osShorts[$short]; } else { $short = substr($short, 0, 3); } } $family = getOsFamilyFullNameExtended($short); if (in_array($short, DeviceDetector::$osShorts) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, $short))) { return sprintf($path, $short); } elseif (array_key_exists($family, DeviceDetector::$osFamilies) && file_exists(PIWIK_INCLUDE_PATH.'/'.sprintf($path, DeviceDetector::$osFamilies[$family][0]))) { return sprintf($path, DeviceDetector::$osFamilies[$family][0]); } return sprintf($path, 'UNK'); }