You are here

function ChartsOpenFlash::get_data_from_cache in Charts and Graphs 6

Same name and namespace in other branches
  1. 7 apis/charts_openflash/charts_openflash.class.inc \ChartsOpenFlash::get_data_from_cache()

Parameters

$cid: cache_id from which cache to retrieve the data

File

apis/charts_openflash/charts_openflash.class.inc, line 37
Implementation of abstract class ChartCanvas for Open Charts Flash 2 library.

Class

ChartsOpenFlash
Implementation of abstract class ChartCanvas for Open Charts Flash 2 library.

Code

function get_data_from_cache($cid = NULL) {
  $cache = cache_get($cid);
  if (!$cache) {
    drupal_not_found();
    exit;
  }
  $canvas = $cache->data;
  if (empty($canvas) || !is_object($canvas) || !is_array($canvas->series) || empty($canvas->type)) {
    drupal_not_found();
    exit;
  }
  $this->title = new stdClass();
  $this->title->text = $canvas->title;
  $this->title->style = 'font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;';
  $this->type = $canvas->translated_type;
  $this->y_legend = new stdClass();
  $this->y_legend->text = $canvas->y_legend;
  $this->y_legend->style = '{color: #736AFF; font-size: 12px;}';
  $y = new stdClass();
  $y->grid_colour = '#00ff00';
  $y->offset = 50;
  $this->y_axis = $y;
  $x = new stdClass();
  $x->colour = '#909090';
  $x->grid_colour = '#00ff00';

  /**
   * Some kind of bug: if labels are not PHP "strings" they do not render.
   * Sigh.
   */
  foreach ($canvas->x_labels as &$label) {
    $label = (string) $label;
  }
  $x->labels->labels = $canvas->x_labels;
  $this->x_axis = $x;
  $series_colors = ChartsOpenFlash::series_colors();

  /**
   * Initializing $min and $max.
   */
  $val = reset($canvas->series);
  $max_value = reset($val);
  $min_value = $max_value;
  $i = 0;

  // for colours
  foreach ($canvas->series as $key => $val) {
    $obj = new stdClass();
    $val = $this
      ->_preprocess_values($val);
    $obj->values = $val;
    if ($this->type == 'pie') {
      $obj->tip = '#label# #val# (#percent#)';
      $obj->{'label - colour'} = '#432BAF';
    }
    else {
      $max_value_arr = max($val);
      if ($max_value < $max_value_arr) {
        $max_value = $max_value_arr;
      }
      $min_value_arr = min($val);
      if ($min_value > $min_value_arr) {
        $min_value = $min_value_arr;
      }
    }
    $obj->text = $key;
    $obj->alpha = 0.5;
    $obj->type = $canvas->type;
    $obj->colour = $series_colors[$i];
    $this->elements[] = $obj;
    $i++;
  }
  if ($this->type != 'pie') {
    $y_step = abs(($max_value - $min_value) / 10);
    $this->x_axis->{'3d'} = 5;
    $this->y_axis->max = $max_value + $max_value / 10;
    if ($this->y_axis->max > 10) {
      $this->y_axis->max = (int) $this->y_axis->max;
    }
    $this->y_axis->min = $min_value;
    if ($y_step > 5) {
      $y_step = (int) $y_step;
    }
    $this->y_axis->steps = $y_step;
  }
}