/** * Initialize the properties * @param array $highchart_sql_query_options * @param array $highchart_graph_options */ protected function setVariables(array $highchart_sql_query_options, array $highchart_graph_options) { if (!empty($highchart_sql_query_options)) { $this->highchart_sql_query_options = $highchart_sql_query_options; } if (empty($this->highchart_sql_query_options['sum'])) { $this->highchart_sql_query_options['sum'] = FALSE; } if (empty($this->highchart_sql_query_options['date_field'])) { $this->highchart_sql_query_options['date_field'] = 'date_created'; } if (empty($this->highchart_sql_query_options['condition'])) { $this->highchart_sql_query_options['condition'] = ''; } if (empty($this->highchart_sql_query_options['filters']) || !is_array($this->highchart_sql_query_options['filters'])) { $this->highchart_sql_query_options['filters'] = array(); } if (!empty($highchart_graph_options)) { $this->highchart_graph_options = $highchart_graph_options; } if (empty($this->highchart_graph_options['title'])) { $this->highchart_graph_options['title'] = Lang::t('Reports'); } if (empty($this->highchart_graph_options['y_axis_label'])) { $this->highchart_graph_options['y_axis_label'] = $this->highchart_graph_options['title']; } HighCharts::init(); if (!empty($this->highchart_graph_options['graph_type'])) { HighCharts::setGraphType($this->highchart_graph_options['graph_type']); } $this->highchart_graph_type = HighCharts::getGraphType(); if ($this->highchart_graph_type === HighCharts::GRAPH_PIE) { $this->highchart_series = $this->getHighChartPieSeries(); } else { $this->highchart_series = $this->getHighChartGraphSeries(); } }
public function run() { $graph_type_filter = ''; $date_range_filter = ''; $filter_form = ''; if ($this->showGraphTypeFilter) { $graph_type_filter = CHtml::dropDownList(HighCharts::GET_PARAM_GRAPH_TYPE, HighCharts::getGraphType(), HighCharts::graphTypes(), $this->graphTypeFilterHtmlOptions); } if ($this->showDateRangeFilter) { $date_range_string = $this->date_range_from . ' - ' . $this->date_range_to; $date_range_filter = CHtml::tag('span', array(), $date_range_string); $date_range_hidden = CHtml::hiddenField(HighCharts::GET_PARAM_DATE_RANGE); $date_range_filter_container = CHtml::tag('div', $this->dateRangeFilterHtmlOptions, $date_range_hidden . '<i class="icon-calendar icon-large"></i> ' . $date_range_filter . ' <b class = "caret"></b>'); } if ($this->showFilter) { $filter_form .= CHtml::beginForm(Yii::app()->createUrl($this->owner->route, $this->owner->actionParams), 'get', $this->filterFormHtmlOptions); $filter_form .= Common::myStringReplace($this->filterFormTemplate, array('{graph_type}' => $graph_type_filter, '{date_range}' => $date_range_filter_container)); $filter_form .= CHtml::hiddenField(HighCharts::GET_PARAM_HIGHCHART_FLAG, true); $filter_form .= CHtml::endForm(); } $chart = CHtml::tag('div', array('id' => $this->chartID), '', true); $contents = Common::myStringReplace($this->chartTemplate, array('{filter_form}' => $filter_form, '{chart}' => $chart)); echo CHtml::tag('div', $this->htmlOptions, $contents); }