function ChartsGraphsOpenFlash::get_data_from_cache in Charts and Graphs 6.2
Same name and namespace in other branches
- 7 apis/charts_graphs_open_flash/charts_graphs_open_flash.class.inc \ChartsGraphsOpenFlash::get_data_from_cache()
Parameters
$cid: cache_id from which cache to retrieve the data
File
- apis/
charts_graphs_open_flash/ charts_graphs_open_flash.class.inc, line 29
Class
- ChartsGraphsOpenFlash
- Implementation of abstract class ChartsGraphsFlashCanvas 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;
$is_pie = $this->type === 'pie';
$this->y_legend = new stdClass();
$this->y_legend->text = $canvas->y_legend ? $canvas->y_legend : '';
$this->y_legend->style = '{color: #736AFF; font-size: 12px;}';
/**
* Applying background colour setting if available.
*/
if (isset($canvas->colour) && !empty($canvas->colour)) {
$this->bg_colour = $canvas->colour;
}
$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.
*
* Seizing the oportunity and also fixing x_labels arrays whoose keys aren't
* numeric: 0, 1, 2 etc.
*/
$x_labels = array();
foreach ($canvas->x_labels as $key => $label) {
$x_labels[] = (string) $label;
}
$x->labels->labels = $x_labels;
$this->x_axis = $x;
$series_colours = array_values($canvas->series_colours);
/**
* 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) {
if ($is_pie && $i > 0) {
break;
}
$obj = new stdClass();
$val = $this
->_preprocess_values($val);
$obj->values = $val;
if ($is_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_colours[$i];
$this->elements[] = $obj;
$i++;
}
if (!$is_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;
/**
* Applying user defined min, max and step for y axis values.
*/
if (isset($canvas->y_min)) {
$this->y_axis->min = $canvas->y_min;
}
if (isset($canvas->y_max)) {
$this->y_axis->max = $canvas->y_max;
}
if (isset($canvas->y_step)) {
$this->y_axis->steps = $canvas->y_step;
}
}
}