From 843c0c13ec0251efccb6cdced975d78e6a4b3ef6 Mon Sep 17 00:00:00 2001 From: Bruno Massa <brmassa@67164.no-reply.drupal.org> Date: Mon, 7 Jul 2008 10:19:07 +0000 Subject: [PATCH] Bugs fixed: * Apply the correct color value intochart data --- charts.inc | 11 ++++++++--- charts.module | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/charts.inc b/charts.inc index 2787a72..e97a6fb 100644 --- a/charts.inc +++ b/charts.inc @@ -52,7 +52,7 @@ function _charts_color_form(&$form, $form_state, $settings) { $form['color']['palette']['color'. $color] = array( '#type' => 'textfield', '#title' => $value, - '#default_value' => empty($color_palette[$color]) ? '#336699' : $color_palette[$color], + '#default_value' => empty($color_palette[$color]) ? '336699' : $color_palette[$color], '#size' => 8, ); $color_palette['color'. $color] = $color_palette[$color]; @@ -73,8 +73,10 @@ function _charts_color_form(&$form, $form_state, $settings) { function _charts_color_palette() { return array( '' => t('Custom'), - '#FF0000,#00CC00,#0066B3,#FF8000,#FFCC00,#330099,#990099,#CCFF00' => t('Primary'), - '#FF6600,#009999,#1919B3,#FFB200,#FFFF00,#660099,#E60066,#33FF00' => t('Secondary'), + '#ff0000,#00cc00,#0066b3,#ff8000,#ffcc00,#330099,#990099,#ccff00' => t('Primary'), + '#ff6600,#009999,#1919b3,#ffb200,#ffff00,#660099,#e60066,#33ff00' => t('Secondary'), +// 'ff0000,00cc00,0066b3,ff8000,ffcc00,330099,990099,ccff00' => t('Primary'), +// 'ff6600,009999,1919b3,ffb200,ffff00,660099,e60066,33ff00' => t('Secondary'), ); } @@ -212,6 +214,9 @@ function _charts_settings_submit(&$form, &$form_state) { unset($settings[$index]); } + // Save the Color palette. Firts, filter the data, cluster the results + // into a single string. Finally, unset all field values, since they + // are useless $settings['#color_palette'] = implode(',', $settings['#palette']); unset($settings['#palette']); unset($settings['#scheme']); diff --git a/charts.module b/charts.module index 29ad7ba..4319f3c 100644 --- a/charts.module +++ b/charts.module @@ -20,19 +20,18 @@ * JavaScript external files) */ function charts_chart(&$data) { - // Get the previously saved data from Data Base + // Get the previously saved data from database $settings = variable_get('charts_settings', array()); + // Split the color palette data into inidividual values + $color_palette = explode(',', ereg_replace('#', '', $settings['#color_palette'])); + + // Check if the Chart will use the color palette for individual values + // instead for series, like Pie Charts $options = array('pie2D' => TRUE, 'pie3D' => TRUE); - if (!empty($data['#type'])) { - if (!empty($options[$data['#type']])) { - $color_palette = TRUE; - } - } - elseif (!empty($settings['#type'])) { - if (!empty($options[$settings['#type']])) { - $color_palette = TRUE; - } + if ((!empty($data['#type']) and !empty($options[$data['#type']]) ) or + (!empty($settings['#type']) and !empty($options[$settings['#type']]) ) ) { + $individual_color_palette = TRUE; } // Merge all series option to the main data array, @@ -42,20 +41,21 @@ function charts_chart(&$data) { } unset($settings[$series]); - // Color Palette - if (empty($color_palette) and empty($data[$series]['#color'])) { - $data[$series]['#color'] = trim($settings['#color_palette'][$series]); + // Apply the Color Palette: normally, apply one color to each series. + // But for some types of charts, is one color to each value into the series + if (empty($individual_color_palette) and empty($data[$series]['#color'])) { + $data[$series]['#color'] = $color_palette[$series]; } - elseif (!empty($color_palette)) { + elseif (!empty($individual_color_palette)) { foreach (element_children($data[$series]) as $values) { if (!is_array($data[$series][$values])) { $data[$series][$values] = array( '#value' => $data[$series][$values], - '#color' => trim($settings['#color_palette'][$values]) + '#color' => $color_palette[$values], ); } elseif (empty($data[$series][$values]['#color'])) { - $data[$series][$values]['#color'] = trim($settings['#color_palette'][$values]); + $data[$series][$values]['#color'] = $color_palette[$values]; } } } -- GitLab