/** * Given for example, $period = month, $lastN = 'last6', $endDate = '2011-07-01', * It will return the $date = '2011-01-01,2011-07-01' which is useful to draw graphs for the last N periods * * @param string $period * @param string $lastN * @param string $endDate * @param Piwik_Site $site * @return string */ public static function getDateRangeRelativeToEndDate($period, $lastN, $endDate, $site) { $last30Relative = new Piwik_Period_Range($period, $lastN, $site->getTimezone()); $last30Relative->setDefaultEndDate(Piwik_Date::factory($endDate)); $date = $last30Relative->getDateStart()->toString() . "," . $last30Relative->getDateEnd()->toString(); return $date; }
/** * @group Core * @group Period * @group Period_Range */ public function testCustomRangePreviousN() { $range = new Piwik_Period_Range('range', 'previous3'); $range->setDefaultEndDate(Piwik_Date::factory('2008-01-03')); $correct = array('2007-12-31', '2008-01-01', '2008-01-02'); $this->assertEquals(count($correct), $range->getNumberOfSubperiods()); $this->assertEquals($correct, $range->toString()); }
/** * Returns the array of new processed parameters once the parameters are applied. * For example: if you set range=last30 and date=2008-03-10, * the date element of the returned array will be "2008-02-10,2008-03-10" * * Parameters you can set: * - range: last30, previous10, etc. * - date: YYYY-MM-DD, today, yesterday * - period: day, week, month, year * * @param array paramsToSet = array( 'date' => 'last50', 'viewDataTable' =>'sparkline' ) */ protected function getGraphParamsModified($paramsToSet = array()) { if (!isset($paramsToSet['range'])) { $range = 'last30'; } else { $range = $paramsToSet['range']; } if (!isset($paramsToSet['date'])) { $endDate = $this->strDate; } else { $endDate = $paramsToSet['date']; } if (!isset($paramsToSet['period'])) { $period = Piwik_Common::getRequestVar('period'); } else { $period = $paramsToSet['period']; } $last30Relative = new Piwik_Period_Range($period, $range); $last30Relative->setDefaultEndDate(Piwik_Date::factory($endDate)); $paramDate = $last30Relative->getDateStart()->toString() . "," . $last30Relative->getDateEnd()->toString(); $params = array_merge($paramsToSet, array('date' => $paramDate)); return $params; }
/** * Returns the array of new processed parameters once the parameters are applied. * For example: if you set range=last30 and date=2008-03-10, * the date element of the returned array will be "2008-02-10,2008-03-10" * * Parameters you can set: * - range: last30, previous10, etc. * - date: YYYY-MM-DD, today, yesterday * - period: day, week, month, year * * @param array paramsToSet = array( 'date' => 'last50', 'viewDataTable' =>'sparkline' ) */ protected function getGraphParamsModified($paramsToSet = array()) { if(!isset($paramsToSet['period'])) { $period = Piwik_Common::getRequestVar('period'); } else { $period = $paramsToSet['period']; } if($period == 'range') { return $paramsToSet; } if(!isset($paramsToSet['range'])) { $range = 'last30'; } else { $range = $paramsToSet['range']; } if(!isset($paramsToSet['date'])) { $endDate = $this->strDate; } else { $endDate = $paramsToSet['date']; } if(is_null($this->site)) { throw new Piwik_Access_NoAccessException("Website not initialized, check that you are logged in and/or using the correct token_auth."); } $last30Relative = new Piwik_Period_Range($period, $range, $this->site->getTimezone() ); $last30Relative->setDefaultEndDate(Piwik_Date::factory($endDate)); $paramDate = $last30Relative->getDateStart()->toString() . "," . $last30Relative->getDateEnd()->toString(); $params = array_merge($paramsToSet , array( 'date' => $paramDate ) ); return $params; }