/** * Fetches and writes analytics data to cache and database */ public function saveAnalyticsData() { try { if (!$this->isTodaysFileExists()) { $dayTimeStamp = 24 * 60 * 60; $prevDateTimeStamp = time(); $dataArray = array(); $fromDate = date('Y-m-d', $prevDateTimeStamp - 30 * $dayTimeStamp); $toDate = date('Y-m-d', $prevDateTimeStamp - $dayTimeStamp); $analyticsData = Fox::getModel('admin/analytics')->getAnalyticsData($fromDate, $toDate); $model = Fox::getModel('admin/analytics'); $ga_profile_id = $this->getProfileId(); for ($i = 30; $i >= 1; $i--) { $date = date('Y-m-d', $prevDateTimeStamp - $i * $dayTimeStamp); $value = Fox_Core_Model_Date::__toLocaleDate(strtotime($date), "d-M-Y"); $total_results = 0; $page_views = 0; $visits = 0; if (false && array_key_exists($date, $analyticsData)) { $total_results = $analyticsData[$date]['page_views']; $page_views = $analyticsData[$date]['total_results']; $visits = $analyticsData[$date]['total_visits']; } else { $results = $this->requestReportData($ga_profile_id, $date, $date); if (count($results) > 0) { $page_views = $results['page_views']; $visits = $results['visits']; } $model->setDateValue($date); $model->setTotalResults($total_results); $model->setPageViews($page_views); $model->setTotalVisits($visits); $model->save(); $model->unsetData(); } $dataArray[$i]['value'] = $value; $dataArray[$i]['page_views'] = $page_views; $dataArray[$i]['total_visits'] = $visits; } $this->writeData($dataArray); } } catch (Exception $e) { Fox::getHelper('core/message')->setError($e->getMessage()); } }
/** * Render contents * * @return string * @throws Exception if arguments passed is less than two */ public function render() { if (func_num_args() < 2) { throw new Exception('Too few parameters! Two required.'); } $args = func_get_args(); $item = $args[0]; $column = $args[1]; $value = $item->{$column['fieldMethod']}(); if ($column['type'] == self::TYPE_OPTIONS) { $colMarkup = $column['options'][$value]; } else { if ($column['type'] == self::TYPE_DATE) { $colMarkup = $value != NULL && $value != '0000-00-00' && $value != '0000-00-00 00:00:00' ? Fox_Core_Model_Date::__toLocaleDate(strtotime($value), isset($column['format']) ? $column['format'] : 'Y-m-d', isset($column['locale']) ? $column['locale'] : NULL) : (isset($column['default']) ? $column['default'] : ''); } else { $colMarkup = $value; } } return $colMarkup; }