From 7853d2d1d04b2fd59630d116055bf439d843076c Mon Sep 17 00:00:00 2001 From: mattab <matthieu.aubry@gmail.com> Date: Sun, 14 Apr 2013 21:52:13 +1200 Subject: [PATCH] fixes #3892 Fixing + testing filter_truncate on getPlugin --- core/DataTable/Row.php | 3 +++ plugins/UserSettings/API.php | 5 +++++ plugins/UserSettings/functions.php | 3 +++ .../Integration/OneVisitor_LongUrlsTruncatedTest.php | 7 ++++++- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/core/DataTable/Row.php b/core/DataTable/Row.php index ff5b5de25b..ed98c602e8 100644 --- a/core/DataTable/Row.php +++ b/core/DataTable/Row.php @@ -492,6 +492,9 @@ class Piwik_DataTable_Row private function getColumnValuesMerged($operation, $thisColumnValue, $columnToSumValue) { switch ($operation) { + case 'skip': + $newValue = null; + break; case 'max': $newValue = max($thisColumnValue, $columnToSumValue); break; diff --git a/plugins/UserSettings/API.php b/plugins/UserSettings/API.php index 49a6c4d883..e438b96b2f 100644 --- a/plugins/UserSettings/API.php +++ b/plugins/UserSettings/API.php @@ -215,6 +215,11 @@ class Piwik_UserSettings_API $visitsSum = $visitsSumTotal - $ieVisits; + + // When Truncate filter is applied, it will call AddSummaryRow which tries to sum all rows. + // We tell the object to skip the column nb_visits_percentage when aggregating (since it's not correct to sum % values) + $table->setColumnAggregationOperation('nb_visits_percentage', 'skip'); + // The filter must be applied now so that the new column can // be sorted by the generic filters (applied right after this loop exits) $table->filter('ColumnCallbackAddColumnPercentage', array('nb_visits_percentage', Piwik_Archive::INDEX_NB_VISITS, $visitsSum, 1)); diff --git a/plugins/UserSettings/functions.php b/plugins/UserSettings/functions.php index 6e5db05428..e1c5579608 100644 --- a/plugins/UserSettings/functions.php +++ b/plugins/UserSettings/functions.php @@ -16,6 +16,9 @@ require_once PIWIK_INCLUDE_PATH . '/libs/UserAgentParser/UserAgentParser.php'; function Piwik_getPluginsLogo($oldLabel) { + if($oldLabel == Piwik_Translate('General_Others')) { + return false; + } return 'plugins/UserSettings/images/plugins/' . $oldLabel . '.gif'; } diff --git a/tests/PHPUnit/Integration/OneVisitor_LongUrlsTruncatedTest.php b/tests/PHPUnit/Integration/OneVisitor_LongUrlsTruncatedTest.php index 4d18196094..02156d7a54 100644 --- a/tests/PHPUnit/Integration/OneVisitor_LongUrlsTruncatedTest.php +++ b/tests/PHPUnit/Integration/OneVisitor_LongUrlsTruncatedTest.php @@ -24,7 +24,12 @@ class Test_Piwik_Integration_OneVisitor_LongUrlsTruncated extends IntegrationTes public function getApiForTesting() { - $apiToCall = array('Referers.getKeywords', 'Actions.getPageUrls'); + $apiToCall = array( + 'Referers.getKeywords', + 'Actions.getPageUrls', + + // Specifically testing getPlugin filter_truncate works + 'UserSettings.getPlugin'); return array( array($apiToCall, array('idSite' => self::$fixture->idSite, -- GitLab