class FrxGraphTemplate in Forena Reports 6.2
Same name and namespace in other branches
- 7.2 templates/FrxGraphTemplate.inc \FrxGraphTemplate
- 7.3 templates/FrxGraphTemplate.inc \FrxGraphTemplate
Hierarchy
- class \FrxTemplate
- class \FrxGraphTemplate
Expanded class hierarchy of FrxGraphTemplate
File
- templates/
FrxGraphTemplate.inc, line 2
View source
class FrxGraphTemplate extends FrxTemplate {
public function config_form($config, $xml = '') {
$form_ctl = array();
$graph_types = array(
'bargraph' => 'Bar Graph',
'piechart' => 'Pie Chart',
'linegraph' => 'Line Graph',
'multilinegraph' => 'Multi Series Line Graph',
'scatterplot' => 'Scatter Plot',
);
$styles = array(
'' => 'Normal',
'3D' => '3D',
);
if ($config['type'] == 'bargraph') {
$styles = $styles + array(
'grouped' => 'Grouped',
'stacked' => 'Stacked',
'horizontal' => 'Horizontal',
);
}
switch (@$config['type']) {
case 'piechart':
case 'linegraph':
$num_series = 1;
$xvalues = FALSE;
break;
case 'scatterplot':
$num_series = 4;
$xvalues = TRUE;
break;
default:
$xvalues = FALSE;
$num_series = 4;
}
$form_ctl['type'] = array(
'#type' => 'select',
'#title' => t('Graph Type'),
'#options' => $graph_types,
'#default_value' => $config['type'],
'#ahah' => array(
'path' => 'forena/js/template',
'event' => 'change',
'method' => 'replace',
'callback' => 'forena_template_info_callback',
'wrapper' => 'template-wrapper',
),
);
$form_ctl['gen_table'] = array(
'#type' => 'checkbox',
'#title' => t('Include data table with graph'),
'#default_value' => $config['gen_table'],
);
$form_ctl['style'] = array(
'#type' => 'select',
'#title' => t('Style'),
'#options' => $styles,
'#disabled' => $config['type'] == 'scatterplot',
'#default_value' => $config['style'],
);
$form_ctl['label'] = array(
'#type' => 'textfield',
'#title' => t('Label'),
'#default_value' => $config['label'],
);
$form_ctl['series'] = array(
'#type' => 'fieldset',
'#title' => t('Series'),
);
if ($xvalues) {
$form_ctl['seriesx'] = array(
'#type' => 'fieldset',
'#title' => t('Series X'),
);
$form_ctl['series']['#title'] = t('Series Y');
}
for ($i = 0; $i <= $num_series - 1; $i++) {
if ($xvalues) {
$form_ctl['seriesx'][$i] = array(
'#type' => 'textfield',
'#title' => (string) ($i + 1),
'#default_value' => $config['seriesx'][$i],
);
}
$form_ctl['series'][$i] = array(
'#type' => 'textfield',
'#title' => (string) ($i + 1),
'#default_value' => $config['series'][$i],
);
}
$form_ctl['link'] = array(
'#type' => 'textfield',
'#title' => 'link',
'#default_value' => $config['link'],
);
return $form_ctl;
}
public function generate($xml, $config) {
$media = $this
->extract('media', $config);
$media = $media ? $media : 'FrxSVGGraph';
$div = $this
->blockDiv($config);
if ($media == 'FrxSVGGraph') {
// Clean series
//if (count($config['series'])==1) $config['series'] = $config['series'][1];
//if (count($config['seriesx'])==1) $config['seriesx'] = $config['seriesx'][1];
if (@$config['series']) {
foreach ($config['series'] as $i => $series) {
if (!$series) {
unset($config['series'][$i]);
}
}
}
// Clean colors
if (isset($config['colors'])) {
foreach ($config['colors'] as $i => $color) {
if (!$color) {
unset($color[$i]);
}
}
}
$type = $this
->extract('type', $config);
$xpath = $this
->extract('xpath', $config);
$clause = $this
->extract('clause', $config);
$gen_table = $this
->extract('gen_table', $config);
$frxparms = array(
'type' => $type,
'renderer' => 'FrxSVGGraph',
'xpath' => $xpath,
'options' => forena_query_string($config),
);
$svg = $this
->addNode($div, 2, 'svg', null, null, $frxparms);
if ($gen_table) {
$columns = $this
->columns($xml);
$table = $this
->addNode($div, 4, 'table');
$thead = $this
->addNode($table, 6, 'thead');
$throw = $this
->addNode($thead, 8, 'tr');
$tbody = $this
->addNode($table, 6, 'tbody');
$tdrow = $this
->addNode($tbody, 8, 'tr', null, null, array(
'foreach' => '*',
));
if ($columns) {
foreach ($columns as $col) {
$this
->addNode($throw, 10, 'th', $col);
$this
->addNode($tdrow, 10, 'td', '{' . $col . '}');
}
}
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
FrxGraphTemplate:: |
public | function |
* Returns the section
* Enter description here ... Overrides FrxTemplate:: |
|
FrxGraphTemplate:: |
public | function |
*
* Enter description here ...
* Overrides FrxTemplate:: |
|
FrxTemplate:: |
public | property | ||
FrxTemplate:: |
public | property | ||
FrxTemplate:: |
public | property | ||
FrxTemplate:: |
public | property | ||
FrxTemplate:: |
public | property | ||
FrxTemplate:: |
public | property | ||
FrxTemplate:: |
function | |||
FrxTemplate:: |
function | |||
FrxTemplate:: |
public | function | ||
FrxTemplate:: |
public | function | Generate generic div tag. | |
FrxTemplate:: |
public | function | ||
FrxTemplate:: |
public | function | Extract a configuration var removing it from the array | |
FrxTemplate:: |
public | function | ||
FrxTemplate:: |
public | function | ||
FrxTemplate:: |
public | function |