diff options
author | diosmosis <benaka@piwik.pro> | 2014-11-27 02:34:21 +0300 |
---|---|---|
committer | diosmosis <benaka@piwik.pro> | 2014-11-27 02:34:21 +0300 |
commit | f56c92e7648ba54ccbf6bafefaae3879c1383b0d (patch) | |
tree | b8d43047fa11f3147c0875c890939e7ff691564b /plugins/MultiSites/API.php | |
parent | 9c267a22546e474147b7410e4a0a41e14d5342ed (diff) |
Fix regression in MultiSites w/ regard to master, make sure orders_evolution and ecommerce_revenue_evolution are not present if ecommerce is not enabled for the site.
Diffstat (limited to 'plugins/MultiSites/API.php')
-rwxr-xr-x | plugins/MultiSites/API.php | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/plugins/MultiSites/API.php b/plugins/MultiSites/API.php index 3e29b1560e..b5de1060a5 100755 --- a/plugins/MultiSites/API.php +++ b/plugins/MultiSites/API.php @@ -244,18 +244,6 @@ class API extends \Piwik\Plugin\API $this->calculateEvolutionPercentages($dataTable, $pastData, $apiMetrics); } - // remove eCommerce related metrics on non eCommerce Piwik sites - // note: this is not optimal in terms of performance: those metrics should not be retrieved in the first place - if ($enhanced) { - if ($dataTable instanceof DataTable\Map) { - foreach ($dataTable->getDataTables() as $table) { - $this->removeEcommerceRelatedMetricsOnNonEcommercePiwikSites($table, $apiECommerceMetrics); - } - } else { - $this->removeEcommerceRelatedMetricsOnNonEcommercePiwikSites($dataTable, $apiECommerceMetrics); - } - } - // move the site id to a metadata column $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'group', array('\Piwik\Site', 'getGroupFor'), array())); $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'main_url', array('\Piwik\Site', 'getMainUrlFor'), array())); @@ -330,8 +318,8 @@ class API extends \Piwik\Plugin\API } else { $extraProcessedMetrics = $currentData->getMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME); foreach ($apiMetrics as $metricSettings) { - $evolutionMetricClass = $metricSettings[self::METRIC_EVOLUTION_COL_NAME_KEY] == 'revenue_evolution' - ? "Piwik\\Plugins\\MultiSites\\Columns\\Metrics\\RevenueEvolution" + $evolutionMetricClass = $this->isEcommerceEvolutionMetric($metricSettings) + ? "Piwik\\Plugins\\MultiSites\\Columns\\Metrics\\EcommerceOnlyEvolutionMetric" : "Piwik\\Plugins\\CoreHome\\Columns\\Metrics\\EvolutionMetric"; $extraProcessedMetrics[] = new $evolutionMetricClass( @@ -508,5 +496,13 @@ class API extends \Piwik\Plugin\API return $dataTable; } -} + private function isEcommerceEvolutionMetric($metricSettings) + { + return in_array($metricSettings[self::METRIC_EVOLUTION_COL_NAME_KEY], array( + self::GOAL_REVENUE_METRIC . '_evolution', + self::ECOMMERCE_ORDERS_METRIC . '_evolution', + self::ECOMMERCE_REVENUE_METRIC . '_evolution' + )); + } +}
\ No newline at end of file |