/** * * @param Piwik_Date $date * @param int $n * @return Piwik_Date */ public static function removePeriod($period, Piwik_Date $date, $n) { switch ($period) { case 'day': $startDate = $date->subDay($n); break; case 'week': $startDate = $date->subDay($n * 7); break; case 'month': $startDate = $date->subMonth($n); break; case 'year': $startDate = $date->subMonth(12 * $n); break; default: throw new Exception('The period parameter is invalid'); break; } return $startDate; }
/** * * @param Piwik_Date $date * @param int $n * @return Piwik_Date */ protected function removePeriod($date, $n) { switch ($this->strPeriod) { case 'day': $startDate = $date->subDay($n); break; case 'week': $startDate = $date->subDay($n * 7); break; case 'month': $startDate = $date->subMonth($n); break; case 'year': $startDate = $date->subMonth(12 * $n); break; default: throw new Exception(sprintf(self::$unknowPeriodException, $this->strPeriod)); break; } return $startDate; }
/** * 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(); }