/** * Parses the data to make the chart with */ private function parseChartData() { $maxYAxis = 2; $metrics = array('visitors', 'pageviews'); $graphData = array(); $metricsPerDay = BackendAnalyticsModel::getMetricsPerDay($metrics, $this->startTimestamp, $this->endTimestamp); foreach ($metrics as $i => $metric) { $graphData[$i] = array(); $graphData[$i]['title'] = $metric; $graphData[$i]['label'] = SpoonFilter::ucfirst(BL::lbl(SpoonFilter::toCamelCase($metric))); $graphData[$i]['i'] = $i + 1; $graphData[$i]['data'] = array(); foreach ($metricsPerDay as $j => $data) { // cast SimpleXMLElement to array $data = (array) $data; // build array $graphData[$i]['data'][$j]['date'] = (int) $data['timestamp']; $graphData[$i]['data'][$j]['value'] = (string) $data[$metric]; } } // loop the metrics foreach ($graphData as $metric) { foreach ($metric['data'] as $data) { // get the maximum value if ((int) $data['value'] > $maxYAxis) { $maxYAxis = (int) $data['value']; } } } $this->tpl->assign('maxYAxis', $maxYAxis); $this->tpl->assign('tickInterval', $maxYAxis == 2 ? '1' : ''); $this->tpl->assign('graphData', $graphData); }