From e5dee0ae2c3583d1142de7de93449f27e75571dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Subileau?= Date: Sun, 17 Mar 2013 01:54:58 +0100 Subject: [PATCH 1/4] Refs #3697, Prettify ISP names --- plugins/Live/Visitor.php | 2 +- plugins/Provider/API.php | 2 +- plugins/Provider/functions.php | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/plugins/Live/Visitor.php b/plugins/Live/Visitor.php index c42ff66233b..ed3f7e84f48 100644 --- a/plugins/Live/Visitor.php +++ b/plugins/Live/Visitor.php @@ -497,7 +497,7 @@ function getScreenTypeIcon() function getProvider() { - return Piwik_getHostnameName( @$this->details['location_provider']); + return Piwik_Provider_getPrettyProviderName( @$this->details['location_provider']); } function getProviderUrl() diff --git a/plugins/Provider/API.php b/plugins/Provider/API.php index d2fe4b3beea..f3747dc20b6 100644 --- a/plugins/Provider/API.php +++ b/plugins/Provider/API.php @@ -39,7 +39,7 @@ public function getProvider( $idSite, $period, $date, $segment = false ) $dataTable = $archive->getDataTable('Provider_hostnameExt'); $dataTable->filter('Sort', array(Piwik_Archive::INDEX_NB_VISITS)); $dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'url', 'Piwik_getHostnameUrl')); - $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getHostnameName')); + $dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_Provider_getPrettyProviderName')); $dataTable->queueFilter('ReplaceColumnNames'); $dataTable->queueFilter('ReplaceSummaryRowLabel'); return $dataTable; diff --git a/plugins/Provider/functions.php b/plugins/Provider/functions.php index ec1afd4518a..81866befd49 100644 --- a/plugins/Provider/functions.php +++ b/plugins/Provider/functions.php @@ -61,3 +61,37 @@ function Piwik_getHostnameUrl($in) return "https://startpage.com/do/search?q=".urlencode($in); } } + +/** + * Return a pretty provider name for a given domain name + * + * @param string $in hostname + * @return string Real ISP name, IP (if IP address didn't resolve), or Unknown + */ +function Piwik_Provider_getPrettyProviderName( $in ) +{ + $providerName = Piwik_getHostnameName($in); + + $prettyNames = array( //List to be completed + // France + "wanadoo" => "Orange", + "proxad" => "Free", + "bbox" => "Bouygues Telecom", + "bouyguestelecom" => "Bouygues Telecom", + "coucou-networks" => "Free Mobile", + "sfr" => "SFR", //Acronym, keep in uppercase + "univ-metz" => "Université de Lorraine", + "unilim" => "Université de Limoges", + "univ-paris5" => "Université Paris Descartes", + + // US + "rr" => "Time Warner Cable Internet", // Not sure + ); + + if(array_key_exists(strtolower($providerName), $prettyNames)) + { + $providerName = $prettyNames[strtolower($providerName)]; + } + + return $providerName; +} From b9622596871abd068cec36f8454682e474a1494f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Subileau?= Date: Sun, 17 Mar 2013 18:10:56 +0100 Subject: [PATCH 2/4] Move the "Providers" array to its own core/DataFiles/Providers.php --- core/Common.php | 15 +++++++++++++++ core/DataFiles/Providers.php | 32 ++++++++++++++++++++++++++++++++ plugins/Provider/functions.php | 16 +--------------- 3 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 core/DataFiles/Providers.php diff --git a/core/Common.php b/core/Common.php index e728675c2b3..d6908310d46 100644 --- a/core/Common.php +++ b/core/Common.php @@ -1023,6 +1023,21 @@ static public function getSearchEngineNames() return $searchEngines; } + /** + * Returns list of provider names + * + * @see core/DataFiles/Providers.php + * + * @return array Array of ( dnsName => providerName ) + */ + static public function getProviderNames() + { + require_once PIWIK_INCLUDE_PATH . '/core/DataFiles/Providers.php'; + + $providers = $GLOBALS['Piwik_ProviderNames']; + return $providers; + } + /* * Language, country, continent */ diff --git a/core/DataFiles/Providers.php b/core/DataFiles/Providers.php new file mode 100644 index 00000000000..33467ba165c --- /dev/null +++ b/core/DataFiles/Providers.php @@ -0,0 +1,32 @@ + "Orange", + "proxad" => "Free", + "bbox" => "Bouygues Telecom", + "bouyguestelecom" => "Bouygues Telecom", + "coucou-networks" => "Free Mobile", + "sfr" => "SFR", //Acronym, keep in uppercase + "univ-metz" => "Université de Lorraine", + "unilim" => "Université de Limoges", + "univ-paris5" => "Université Paris Descartes", + + // US + "rr" => "Time Warner Cable Internet", // Not sure + ); +} diff --git a/plugins/Provider/functions.php b/plugins/Provider/functions.php index 81866befd49..fc88af8ac02 100644 --- a/plugins/Provider/functions.php +++ b/plugins/Provider/functions.php @@ -72,21 +72,7 @@ function Piwik_Provider_getPrettyProviderName( $in ) { $providerName = Piwik_getHostnameName($in); - $prettyNames = array( //List to be completed - // France - "wanadoo" => "Orange", - "proxad" => "Free", - "bbox" => "Bouygues Telecom", - "bouyguestelecom" => "Bouygues Telecom", - "coucou-networks" => "Free Mobile", - "sfr" => "SFR", //Acronym, keep in uppercase - "univ-metz" => "Université de Lorraine", - "unilim" => "Université de Limoges", - "univ-paris5" => "Université Paris Descartes", - - // US - "rr" => "Time Warner Cable Internet", // Not sure - ); + $prettyNames = Piwik_Common::getProviderNames(); if(array_key_exists(strtolower($providerName), $prettyNames)) { From b50117087d18a49d6d5feb416dc5f979421b6742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Subileau?= Date: Sun, 17 Mar 2013 18:18:01 +0100 Subject: [PATCH 3/4] Additional check --- plugins/Provider/functions.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Provider/functions.php b/plugins/Provider/functions.php index fc88af8ac02..9230f0a6eb6 100644 --- a/plugins/Provider/functions.php +++ b/plugins/Provider/functions.php @@ -74,7 +74,8 @@ function Piwik_Provider_getPrettyProviderName( $in ) $prettyNames = Piwik_Common::getProviderNames(); - if(array_key_exists(strtolower($providerName), $prettyNames)) + if(is_array($prettyNames) + && array_key_exists(strtolower($providerName), $prettyNames)) { $providerName = $prettyNames[strtolower($providerName)]; } From 1f8fa790ab63a9c1d88246ea987d4dae5e09c5a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Subileau?= Date: Mon, 1 Apr 2013 21:01:07 +0200 Subject: [PATCH 4/4] Fix failing test due to missing include --- tests/PHPUnit/IntegrationTestCase.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php index 3ee7c7f59ca..c254d2ef2b5 100755 --- a/tests/PHPUnit/IntegrationTestCase.php +++ b/tests/PHPUnit/IntegrationTestCase.php @@ -123,6 +123,7 @@ public static function _setUpBeforeClass( $dbName = false, $createEmptyDatabase include "DataFiles/Countries.php"; include "DataFiles/Currencies.php"; include "DataFiles/LanguageToCountry.php"; + include "DataFiles/Providers.php"; Piwik::createAccessObject(); Piwik_PostEvent('FrontController.initAuthenticationObject');