protected function getStatsData($options) { $kurogoOption = new KurogoStatsOption(); $type = isset($options['stattype']) ? $options['stattype'] : 'count'; $kurogoOption->setType($type); if ($options['service']) { $kurogoOption->setService($options['service']); unset($options['service']); } if ($options['start']) { $kurogoOption->addFilter('timestamp', 'GT', $options['start']); } if ($options['end']) { $kurogoOption->addFilter('timestamp', 'LT', $options['end']); } if (isset($options['sort'])) { $kurogoOption->setSortField($options['sort']); } if (isset($options['sort_dir'])) { $kurogoOption->setSortDir($options['sort_dir']); } if (isset($options['group'])) { $kurogoOption->setGroup($options['group']); } if (isset($options['field'])) { $kurogoOption->setField($options['field']); } if (isset($options['top'])) { $kurogoOption->setLimit($options['top']); } foreach (KurogoStats::validFields() as $field) { if (isset($options[$field])) { $kurogoOption->addFilter($field, 'EQ', $options[$field]); } } return KurogoStats::retrieveStats($kurogoOption); }
public static function initStatsResult(KurogoStatsOption $OptionObject) { $result = array(); foreach ($OptionObject->getGroup() as $group) { switch ($group) { case 'moduleID': if ($OptionObject->getService() == 'web') { $moduleData = WebModule::getAllModules(); } else { $moduleData = APIModule::getAllModules(); } $result = array_combine(array_keys($moduleData), array_fill(0, count($moduleData), 0)); break; case 'platform': $platforms = self::$platforms; $result = array_combine(array_keys($platforms), array_fill(0, count($platforms), 0)); break; case 'pagetype': $pagetypes = self::$pagetypes; $result = array_combine(array_keys($pagetypes), array_fill(0, count($pagetypes), 0)); break; case 'hour': $result = array_combine(range(0, 23), array_fill(0, 24, 0)); break; } } return $result; }