示例#1
0
 /**
  * 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();
     }
 }
示例#2
0
 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>&nbsp;' . $date_range_filter . '&nbsp;<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);
 }