From 5fa73701a629b3ecd02cc50c9de3ff30e41cfb79 Mon Sep 17 00:00:00 2001 From: diosmosis <benaka@piwik.pro> Date: Tue, 25 Nov 2014 06:39:24 -0800 Subject: [PATCH] Fix remaining Plugin.get API methods; delete temporary columns in queued filter. --- core/Plugin/Report.php | 2 +- plugins/Actions/API.php | 9 ++++++++- plugins/VisitsSummary/API.php | 5 ++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/core/Plugin/Report.php b/core/Plugin/Report.php index 41f3cfcf56..d2b4aed8df 100644 --- a/core/Plugin/Report.php +++ b/core/Plugin/Report.php @@ -379,7 +379,7 @@ class Report } if (empty($restrictToColumns)) { - $restrictToColumns = $allMetrics; + $restrictToColumns = $this->getAllMetrics(); } $processedMetricsById = $this->getProcessedMetricsById(); diff --git a/plugins/Actions/API.php b/plugins/Actions/API.php index 0cf5bd63a8..2dd7d9a4df 100644 --- a/plugins/Actions/API.php +++ b/plugins/Actions/API.php @@ -55,17 +55,24 @@ class API extends \Piwik\Plugin\API public function get($idSite, $period, $date, $segment = false, $columns = false) { Piwik::checkUserHasViewAccess($idSite); + + $report = Report::factory("Actions", "get"); $archive = Archive::build($idSite, $period, $date, $segment); $requestedColumns = Piwik::getArrayFromApiParameter($columns); - $columns = Report::factory("Actions", "get")->getMetricsRequiredForReport($allColumns = null, $requestedColumns); + $columns = $report->getMetricsRequiredForReport($allColumns = null, $requestedColumns); $inDbColumnNames = array_map(function ($value) { return 'Actions_' . $value; }, $columns); $dataTable = $archive->getDataTableFromNumeric($inDbColumnNames); + $dataTable->deleteColumns(array_diff($requestedColumns, $columns)); $newNameMapping = array_combine($inDbColumnNames, $columns); $dataTable->filter('ReplaceColumnNames', array($newNameMapping)); + + $columnsToShow = $requestedColumns ?: $report->getAllMetrics(); + $dataTable->queueFilter('ColumnDelete', array($columnsToRemove = array(), $columnsToShow)); + return $dataTable; } diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php index d6453075a7..283de2c7ee 100644 --- a/plugins/VisitsSummary/API.php +++ b/plugins/VisitsSummary/API.php @@ -33,7 +33,10 @@ class API extends \Piwik\Plugin\API $columns = $report->getMetricsRequiredForReport($this->getCoreColumns($period), $requestedColumns); $dataTable = $archive->getDataTableFromNumeric($columns); - $dataTable->deleteColumns(array_diff($requestedColumns, $columns)); + + $columnsToShow = $requestedColumns ?: $report->getAllMetrics(); + $dataTable->queueFilter('ColumnDelete', array($columnsToRemove = array(), $columnsToShow)); + return $dataTable; } -- GitLab