/** * The constructor * Initialize some local variables from the request * @param int $idSite * @param Piwik_Date $date ($this->date from controller) * @throws Exception */ public function __construct($idSite, $date) { $this->apiMethod = Piwik_Common::getRequestVar('apiMethod', '', 'string'); if (empty($this->apiMethod)) { throw new Exception("Parameter apiMethod not set."); } $this->label = Piwik_Common::getRequestVar('label', '', 'string'); $this->label = Piwik_Common::unsanitizeInputValue($this->label); if ($this->label === '') { throw new Exception("Parameter label not set."); } $this->period = Piwik_Common::getRequestVar('period', '', 'string'); if (empty($this->period)) { throw new Exception("Parameter period not set."); } $this->idSite = $idSite; if ($this->period != 'range') { // handle day, week, month and year: display last X periods $end = $date->toString(); if ($this->period == 'year') { $start = $date->subYear(10)->toString(); } else { if ($this->period == 'month') { $start = $date->subMonth(30)->toString(); } else { if ($this->period == 'week') { $start = $date->subWeek(30)->toString(); } else { $start = $date->subDay(30)->toString(); } } } $this->date = $start . ',' . $end; } $this->segment = Piwik_Common::getRequestVar('segment', '', 'string'); $this->loadEvolutionReport(); }