diff options
Diffstat (limited to 'plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php')
-rw-r--r-- | plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php b/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php index 5de7fc5114..337bb233b2 100644 --- a/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php +++ b/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php @@ -9,8 +9,11 @@ namespace Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph; +use Piwik\API\Request as ApiRequest; use Piwik\Common; use Piwik\DataTable; +use Piwik\Period; +use Piwik\Period\Factory; use Piwik\Period\Range; use Piwik\Plugins\CoreVisualizations\JqplotDataGenerator; use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph; @@ -43,7 +46,9 @@ class Evolution extends JqplotGraph public function beforeLoadDataTable() { - $this->calculateEvolutionDateRange(); + if (!$this->isComparing()) { + $this->calculateEvolutionDateRange(); + } parent::beforeLoadDataTable(); @@ -55,6 +60,33 @@ class Evolution extends JqplotGraph } $this->config->custom_parameters['columns'] = $this->config->columns_to_display; + + if ($this->isComparing()) { + $requestArray = $this->request->getRequestArray(); + $requestArray = ApiRequest::getRequestArrayFromString($requestArray); + + $requestingPeriod = Factory::build($requestArray['period'], $requestArray['date']); + + $this->requestConfig->request_parameters_to_modify['period'] = 'day'; + $this->requestConfig->request_parameters_to_modify['date'] = $requestingPeriod->getDateStart()->toString() . ',' . $requestingPeriod->getDateEnd()->toString(); + + if (!empty($requestArray['comparePeriods'])) { + foreach ($requestArray['comparePeriods'] as $index => $comparePeriod) { + $compareDate = $requestArray['compareDates'][$index]; + if (Period::isMultiplePeriod($compareDate, $comparePeriod)) { + continue; + } + + $comparePeriodObj = Factory::build($comparePeriod, $compareDate); + + $requestArray['comparePeriods'][$index] = 'day'; + $requestArray['compareDates'][$index] = $comparePeriodObj->getRangeString(); + } + + $this->requestConfig->request_parameters_to_modify['compareDates'] = $requestArray['compareDates']; + $this->requestConfig->request_parameters_to_modify['comparePeriods'] = $requestArray['comparePeriods']; + } + } } public function afterAllFiltersAreApplied() @@ -70,7 +102,7 @@ class Evolution extends JqplotGraph protected function makeDataGenerator($properties) { - return JqplotDataGenerator::factory('evolution', $properties); + return JqplotDataGenerator::factory('evolution', $properties, $this); } /** @@ -199,4 +231,9 @@ class Evolution extends JqplotGraph return ceil($paddedCount / $steps); } + + public function supportsComparison() + { + return true; + } } |