Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * @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());
 }
Пример #3
0
 /**
  * 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;
 }
Пример #4
0
	/**
	 * 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;
	}