/**
  * Builds the controller object, reads the date from the request, extracts plugin name from 
  *
  */
 function __construct()
 {
     $aPluginName = explode('_', get_class($this));
     $this->pluginName = $aPluginName[1];
     $this->strDate = Piwik_Common::getRequestVar('date', 'yesterday', 'string');
     try {
         // the date looks like YYYY-MM-DD we can build it
         $this->date = Piwik_Date::factory($this->strDate);
         $this->strDate = $this->date->toString();
     } catch (Exception $e) {
         // the date looks like YYYY-MM-DD,YYYY-MM-DD or other format
         $this->date = null;
     }
 }
 /**
  * Inits the object
  */
 protected function loadArchiveProperties()
 {
     $this->idsite = $this->site->getId();
     $this->periodId = $this->period->getId();
     $this->dateStart = $this->period->getDateStart();
     $this->dateEnd = $this->period->getDateEnd();
     $this->tableArchiveNumeric = new Piwik_TablePartitioning_Monthly('archive_numeric');
     $this->tableArchiveNumeric->setIdSite($this->idsite);
     $this->tableArchiveNumeric->setTimestamp($this->dateStart->get());
     $this->tableArchiveBlob = new Piwik_TablePartitioning_Monthly('archive_blob');
     $this->tableArchiveBlob->setIdSite($this->idsite);
     $this->tableArchiveBlob->setTimestamp($this->dateStart->get());
     $this->strDateStart = $this->dateStart->toString();
     $this->strDateEnd = $this->dateEnd->toString();
     // if the current archive is a DAY and if it's today,
     // we set this maxTimestampArchive that defines the lifetime value of today's archive
     $this->maxTimestampArchive = 0;
     if ($this->period->getNumberOfSubperiods() == 0 && $this->period->toString() == date("Y-m-d")) {
         $this->maxTimestampArchive = time() - Zend_Registry::get('config')->General->time_before_today_archive_considered_outdated;
         $browserArchivingEnabled = Zend_Registry::get('config')->General->enable_browser_archiving_triggering;
         // see #1150; if new archives are not triggered from the browser,
         // we still want to try and return the latest archive available for today (rather than return nothing)
         if (!$browserArchivingEnabled) {
             $this->maxTimestampArchive = 0;
         }
     } else {
         if ($this->period->isFinished()) {
             $this->maxTimestampArchive = $this->period->getDateEnd()->setTime('00:00:00')->addDay(1)->getTimestamp();
         } else {
             $this->maxTimestampArchive = Piwik_Date::today()->getTimestamp();
         }
     }
     $db = Zend_Registry::get('db');
     $this->compressBlob = $db->hasBlobDataType();
 }
 /**
  * Inits the object
  * 
  * @return void
  */
 protected function loadArchiveProperties()
 {
     $this->idsite = $this->site->getId();
     $this->periodId = $this->period->getId();
     $this->dateStart = $this->period->getDateStart();
     $this->dateEnd = $this->period->getDateEnd();
     $this->tableArchiveNumeric = new Piwik_TablePartitioning_Monthly('archive_numeric');
     $this->tableArchiveNumeric->setIdSite($this->idsite);
     $this->tableArchiveNumeric->setTimestamp($this->dateStart->get());
     $this->tableArchiveBlob = new Piwik_TablePartitioning_Monthly('archive_blob');
     $this->tableArchiveBlob->setIdSite($this->idsite);
     $this->tableArchiveBlob->setTimestamp($this->dateStart->get());
     $this->strDateStart = $this->dateStart->toString();
     $this->strDateEnd = $this->dateEnd->toString();
     // if the current archive is a DAY and if it's today,
     // we set this maxTimestampArchive that defines the lifetime value of today's archive
     $this->maxTimestampArchive = 0;
     if ($this->period->getNumberOfSubperiods() == 0 && $this->period->toString() == date("Y-m-d")) {
         $this->maxTimestampArchive = time() - Zend_Registry::get('config')->General->time_before_today_archive_considered_outdated;
     } else {
         if ($this->period->isFinished()) {
             $this->maxTimestampArchive = $this->period->getDateEnd()->setTime('00:00:00')->addDay(1)->getTimestamp();
         } else {
             $this->maxTimestampArchive = Piwik_Date::today()->getTimestamp();
         }
     }
 }
Beispiel #4
0
 public function get($part = null)
 {
     if (!$this->subperiodsProcessed) {
         $this->generate();
     }
     return $this->date->toString($part);
 }
Beispiel #5
0
 /**
  * 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, $graphType = null)
 {
     $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;
     $this->graphType = $graphType;
     if ($this->period != 'range') {
         // handle day, week, month and year: display last X periods
         $end = $date->toString();
         list($this->date, $lastN) = Piwik_ViewDataTable_GenerateGraphHTML_ChartEvolution::getDateRangeAndLastN($this->period, $end);
     }
     $this->segment = Piwik_Common::getRequestVar('segment', '', 'string');
     $this->loadEvolutionReport();
 }
	/**
	 * Inits the object
	 */
	protected function loadArchiveProperties()
	{		
		$this->idsite = $this->site->getId();
		
		$this->periodId = $this->period->getId();
		
		$this->dateStart = $this->period->getDateStart();
		$this->dateEnd = $this->period->getDateEnd();
		
		$this->tableArchiveNumeric = new Piwik_TablePartitioning_Monthly('archive_numeric');
		$this->tableArchiveNumeric->setIdSite($this->idsite);
		$this->tableArchiveNumeric->setTimestamp($this->dateStart->get());
		$this->tableArchiveBlob = new Piwik_TablePartitioning_Monthly('archive_blob');
		$this->tableArchiveBlob->setIdSite($this->idsite);	
		$this->tableArchiveBlob->setTimestamp($this->dateStart->get());

		$this->strDateStart = $this->dateStart->toString();
		$this->strDateEnd = $this->dateEnd->toString();
		
		// if the current archive is a DAY and if it's today,
		// we set this maxTimestampArchive that defines the lifetime value of today's archive
		$this->maxTimestampArchive = 0;
		if( $this->period->getNumberOfSubperiods() == 0
			&& $this->period->toString() == date("Y-m-d")
			)
		{
			$this->maxTimestampArchive = time() - Zend_Registry::get('config')->General->time_before_today_archive_considered_outdated;
		}
		// either
		// - if the period we're looking for is finished, we look for a ts_archived that 
		//   is greater than the last day of the archive 
		// - if the period we're looking for is not finished, we look for a recent enough archive
		//   recent enough means maxTimestampArchive = 00:00:01 this morning
		else
		{
			if($this->period->isFinished())
			{
				$this->maxTimestampArchive = $this->period->getDateEnd()->setTime('00:00:00')->addDay(1)->getTimestamp();
			}
			else
			{
				$this->maxTimestampArchive = Piwik_Date::today()->getTimestamp();
			}
		}

		$db = Zend_Registry::get('db');
		$this->compressBlob = $db->hasBlobDataType();
	}
Beispiel #7
0
 /**
  * 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();
 }
Beispiel #8
0
 /**
  * Returns true if a report with the given year & month should be purged or not.
  *
  * @param int $reportDateYear The year of the report in question.
  * @param int $reportDateMonth The month of the report in question.
  * @param Piwik_Date $toRemoveDate The date a report must be older than in order to be purged.
  * @return bool
  */
 public static function shouldReportBePurged($reportDateYear, $reportDateMonth, $toRemoveDate)
 {
     $toRemoveYear = (int) $toRemoveDate->toString('Y');
     $toRemoveMonth = (int) $toRemoveDate->toString('m');
     return $reportDateYear < $toRemoveYear || $reportDateYear == $toRemoveYear && $reportDateMonth <= $toRemoveMonth;
 }
Beispiel #9
0
 /**
  * Sets "today" in the calendar. Today does not always mean "UTC" today, eg. for websites in UTC+12.
  *
  * @param Piwik_Date  $maxDate
  * @param Piwik_View  $view
  * @return void
  */
 protected function setMaxDateView(Piwik_Date $maxDate, $view)
 {
     $view->maxDateYear = $maxDate->toString('Y');
     $view->maxDateMonth = $maxDate->toString('m');
     $view->maxDateDay = $maxDate->toString('d');
 }