Exemplo n.º 1
0
Arquivo: API.php Projeto: piwik/piwik
 public function getTemperaturesEvolution($date, $period)
 {
     $temperatures = array();
     $date = Date::factory('2013-10-10', 'UTC');
     $period = new Range($period, 'last30');
     $period->setDefaultEndDate($date);
     foreach ($period->getSubperiods() as $subPeriod) {
         if (self::$disableRandomness) {
             $server1 = 50;
             $server2 = 40;
         } else {
             $server1 = mt_rand(50, 90);
             $server2 = mt_rand(40, 110);
         }
         $value = array('server1' => $server1, 'server2' => $server2);
         $temperatures[$subPeriod->getLocalizedShortString()] = $value;
     }
     return DataTable::makeFromIndexedArray($temperatures);
 }
Exemplo n.º 2
0
 /**
  * Based on the period, date and evolution_{$period}_last_n query parameters,
  * calculates the date range this evolution chart will display data for.
  */
 private function calculateEvolutionDateRange()
 {
     $period = Common::getRequestVar('period');
     $defaultLastN = self::getDefaultLastN($period);
     $originalDate = Common::getRequestVar('date', 'last' . $defaultLastN, 'string');
     if ('range' != $period) {
         // show evolution limit if the period is not a range
         $this->config->show_limit_control = true;
         // set the evolution_{$period}_last_n query param
         if (Range::parseDateRange($originalDate)) {
             // if a multiple period
             // overwrite last_n param using the date range
             $oPeriod = new Range($period, $originalDate);
             $lastN = count($oPeriod->getSubperiods());
         } else {
             // if not a multiple period
             list($newDate, $lastN) = self::getDateRangeAndLastN($period, $originalDate, $defaultLastN);
             $this->requestConfig->request_parameters_to_modify['date'] = $newDate;
             $this->config->custom_parameters['dateUsedInGraph'] = $newDate;
         }
         $lastNParamName = self::getLastNParamName($period);
         $this->config->custom_parameters[$lastNParamName] = $lastN;
     }
 }
Exemplo n.º 3
0
 public function testRangeComma3_EndDateIncludesToday()
 {
     $range = new Range('day', '2008-01-01,today');
     $subPeriods = $range->getSubperiods();
     $this->assertEquals('2008-01-01', $subPeriods[0]->toString());
     $this->assertEquals('2008-01-02', $subPeriods[1]->toString());
     $this->assertEquals('2008-01-03', $subPeriods[2]->toString());
 }
Exemplo n.º 4
0
 /**
  * Returns a new Archive instance that will query archive data for the given set of
  * sites and periods, using an optional Segment.
  *
  * This method uses data that is found in query parameters, so the parameters to this
  * function can be string values.
  *
  * If you want to create an Archive instance with an array of Period instances, use
  * {@link Archive::factory()}.
  *
  * @param string|int|array $idSites A single ID (eg, `'1'`), multiple IDs (eg, `'1,2,3'` or `array(1, 2, 3)`),
  *                                  or `'all'`.
  * @param string $period 'day', `'week'`, `'month'`, `'year'` or `'range'`
  * @param Date|string $strDate 'YYYY-MM-DD', magic keywords (ie, 'today'; {@link Date::factory()}
  *                             or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD').
  * @param bool|false|string $segment Segment definition or false if no segment should be used. {@link Piwik\Segment}
  * @param bool|false|string $_restrictSitesToLogin Used only when running as a scheduled task.
  * @return Archive
  */
 public static function build($idSites, $period, $strDate, $segment = false, $_restrictSitesToLogin = false)
 {
     $websiteIds = Site::getIdSitesFromIdSitesString($idSites, $_restrictSitesToLogin);
     if (Period::isMultiplePeriod($strDate, $period)) {
         $oPeriod = new Range($period, $strDate);
         $allPeriods = $oPeriod->getSubperiods();
     } else {
         $timezone = count($websiteIds) == 1 ? Site::getTimezoneFor($websiteIds[0]) : false;
         $oPeriod = Period::makePeriodFromQueryParams($timezone, $period, $strDate);
         $allPeriods = array($oPeriod);
     }
     $segment = new Segment($segment, $websiteIds);
     $idSiteIsAll = $idSites == self::REQUEST_ALL_WEBSITES_FLAG;
     $isMultipleDate = Period::isMultiplePeriod($strDate, $period);
     return Archive::factory($segment, $allPeriods, $websiteIds, $idSiteIsAll, $isMultipleDate);
 }