public function FrxChart::render in Forena Reports 6.2
Same name and namespace in other branches
- 7.2 plugins/FrxChart.inc \FrxChart::render()
- 7.3 renderers/FrxChart.inc \FrxChart::render()
Overrides FrxRenderer::render
File
- plugins/
FrxChart.inc, line 3
Class
Code
public function render() {
// Get data from source
$options = array();
$series = array();
$seriesx = array();
$output;
$data = array();
$attributes = $this
->mergedAttributes();
$path = isset($attributes['xpath']) ? $attributes['xpath'] : '*';
$label = '';
$links = '';
$type = $attributes['type'];
$link = @$attributes['link'];
if (isset($attributes['options'])) {
parse_str($attributes['options'], $options);
$series = @$options['series'];
if (isset($options['seriesx'])) {
$seriesx = $options['seriesx'];
unset($options['seriesx']);
}
if (isset($options['label'])) {
$label = $options['label'];
unset($options['label']);
}
foreach ($options as $key => $value) {
$options[$key] = $this->teng
->replace($value);
}
}
if (isset($attributes['height'])) {
$options['height'] = $this->teng
->replace($attributes['height']);
}
if (isset($attributes['width'])) {
$options['width'] = $this->teng
->replace($attributes['width']);
}
// Extract chart series data from xml.
if ($series) {
foreach ((array) $series as $i => $d) {
if ($seriesx) {
$data[] = $this
->xmlToValues($path, $d, $seriesx[$i]);
}
else {
$data[] = $this
->xmlToValues($path, $d, $label);
}
}
}
if ($link) {
$links = $this
->xmlToValues($path, $link, $label);
}
if ($data) {
if (method_exists($this, 'renderChart')) {
$output = $this
->renderChart($type, $data, $options, $links);
}
}
return $output;
}