/** * Get Pie chart data (non x,y axis) */ public function getHighChartPieData() { $sum = $this->highchart_sql_query_options['sum']; $date_range = HighCharts::explodeDateRange(); $query = $this->prepareHighChartQuery($date_range['from'], $date_range['to']); $base_condition = $query['condition']; $base_params = $query['params']; $series = $this->highchart_series; $series_colors = array(); $data = isset($series[0]['data']) ? $series[0]['data'] : array(); $series[0]['type'] = $this->highchart_graph_type; $chart_title = $this->highchart_graph_options['title']; $series[0]['name'] = !empty($this->highchart_graph_options['default_series_name']) ? $this->highchart_graph_options['default_series_name'] : $chart_title; foreach ($data as $k => $element) { $condition = !empty($element['condition']) ? $element['condition'] . ' AND ' . $base_condition : $base_condition; $params = !empty($element['params']) ? array_merge($element['params'], $base_params) : $base_params; $data = $sum ? $this->getSum($sum, $condition, $params) : $this->getTotals($condition, $params); $series[0]['data'][$k]['y'] = (int) $data; if (isset($series[0]['data'][$k]['condition'])) { unset($series[0]['data'][$k]['condition']); } if (isset($series[0]['data'][$k]['params'])) { unset($series[0]['data'][$k]['params']); } if (isset($series[0]['data'][$k]['color'])) { $series_colors[] = $series[0]['data'][$k]['color']; unset($series[0]['data'][$k]['color']); } } return array('graph_type' => $this->highchart_graph_type, 'series' => $series, 'subtitle' => !empty($this->highchart_graph_options['subtitle']) ? $this->highchart_graph_options['subtitle'] : HighCharts::getDateRange(), 'title' => $chart_title, 'colors' => $series_colors); }