diff --git a/modules/charts_highcharts/charts_highcharts.inc b/modules/charts_highcharts/charts_highcharts.inc index 0aaacc9..d63f226 100644 --- a/modules/charts_highcharts/charts_highcharts.inc +++ b/modules/charts_highcharts/charts_highcharts.inc @@ -115,6 +115,11 @@ function _charts_highcharts_populate_chart_options($chart, $chart_definition) { $chart_definition['chart']['height'] = $chart['#height'] ? $chart['#height'] : NULL; $chart_definition['credits']['enabled'] = FALSE; + // Merge in chart raw options. + if (isset($chart['#raw_options'])) { + $chart_definition = drupal_array_merge_deep($chart_definition, $chart['#raw_options']); + } + return $chart_definition; } @@ -169,6 +174,11 @@ function _charts_highcharts_populate_chart_axes($chart, $chart_definition) { } } + // Merge in axis raw options. + if (isset($chart[$key]['#raw_options'])) { + $axis = drupal_array_merge_deep($axis, $chart[$key]['#raw_options']); + } + $chart_definition[$axisType][] = $axis; } } @@ -247,6 +257,11 @@ function _charts_highcharts_populate_chart_data(&$chart, $chart_definition) { charts_trim_array($series); $series['data'] = $series_data; + // Merge in series raw options. + if (isset($chart[$key]['#raw_options'])) { + $series = drupal_array_merge_deep($series, $chart[$key]['#raw_options']); + } + // Add the series to the main chart definition. $chart_definition['series'][$key] = $series; @@ -293,6 +308,11 @@ function _charts_highcharts_populate_chart_data(&$chart, $chart_definition) { $series_point['states']['hover']['fillColor'] = $data_item['#color']; $series_point['states']['select']['fillColor'] = $data_item['#color']; charts_trim_array($series_point); + + // Merge in point raw options. + if (isset($data_item['#raw_options'])) { + $series_point = drupal_array_merge_deep($series_point, $data_item['#raw_options']); + } } }