/** * 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(); } } }
public function get($part = null) { if (!$this->subperiodsProcessed) { $this->generate(); } return $this->date->toString($part); }
/** * 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(); }
/** * 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(); }
/** * 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; }
/** * 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'); }