*/ if(!defined('DOKU_INC')) define('DOKU_INC',(dirname(__FILE__).'/../../').'/'); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'syntax.php'); require_once (DOKU_INC.'inc/parserutils.php'); /** * All DokuWiki plugins to extend the parser/rendering mechanism * need to inherit from this class */ class syntax_plugin_tableplot extends DokuWiki_Syntax_Plugin { function getInfo() { return array( 'author' => 'Tom Cafferty', 'email' => 'tcafferty@glocalfocal.com', 'date' => '2011-12-29', 'name' => 'tableplot', 'desc' => 'Integrate JQPlot to plot a table ', 'url' => 'http://www.dokuwiki.org/plugin:tableplot' ); } /** * What kind of syntax are we? */ function getType(){ return 'substition'; } function getPType(){ return 'block'; } /** * Where to sort in? */ function getSort(){ return 160; } /** * Connect pattern to lexer */ function connectTo($mode) { $this->Lexer->addSpecialPattern('.*?',$mode,'plugin_tableplot'); } /** * Handle the match */ function handle($match, $state, $pos, &$handler){ parse_str($match, $return); return $return; } /** * * Create timeline output * * @author Tom Cafferty * */ function render($mode, &$renderer, $data) { global $INFO; global $ID; global $conf; // store meta info for this page if($mode == 'metadata'){ $renderer->meta['plugin']['tableplot'] = true; return true; } if($mode != 'xhtml') return false; $series = "series:'"; $idstr = "id:'"; $orient = "orient:'"; $firstSeries = "firstSeries:'"; $lastSeries = "lastSeries:'"; $labels = "labels:'"; $xaxis = "xaxis:'"; $dataStart = "dataStart:'"; $dataEnd = "dataEnd:'"; $position = "position:'"; $width = "width:'"; $height = "height:'"; $placement = "placement:'"; $dataTransform = "dataTransform:"; $labelTransform = "labelTransform:"; $xaxisTransform = "xaxisTransform:"; // Initialize settings from user input or conf file if (isset($data['orient'])) $orient .= $data['orient'] . "',"; else $orient .= $this->getConf('orient'). "',"; if (isset($data['series'])) $series .= $data['series'] . "',"; else $series .= $this->getConf('series'). "',"; if (isset($data['firstSeries'])) $firstSeries .= $data['firstSeries'] . "',"; else $firstSeries = ''; if (isset($data['lastSeries'])) $lastSeries .= $data['lastSeries']. "',"; else $lastSeries = ''; if (isset($data['labels'])) $labels .= $data['labels']. "',"; else $labels = ''; if (isset($data['xaxis'])) $xaxis .= $data['xaxis']. "',"; else $xaxis = ''; if (isset($data['dataStart'])) $dataStart .= $data['dataStart']. "',"; else $dataStart = ''; if (isset($data['dataEnd'])) $dataEnd .= $data['dataEnd']. "',"; else $dataEnd = ''; if (isset($data['position'])) $position .= $data['position']. "',"; else $position = ''; if (isset($data['width'])) $width .= $data['width']. "',"; else $width = ''; if (isset($data['height'])) $height .= $data['height']. "',"; else $height = ''; if (isset($data['placement'])) $placement .= $data['placement']. "',"; else $placement = ''; if (isset($data['dataTransform'])) $dataTransform .= $data['dataTransform']. ","; else $dataTransform = ''; if (isset($data['labelTransform'])) $labelTransform .= $data['labelTransform']. ","; else $labelTransform = ''; if (isset($data['xaxisTransform'])) $xaxisTransform .= $data['xaxisTransform']. ","; else $xaxisTransform = ''; if (isset($data['plotArgs'])) $plotArgs = $data['plotArgs']; else $plotArgs = ''; if (isset($data['id'])) { $id = $data['id']; $idstr .= $data['id']."'"; } else { $id = $this->getConf('id'); $idstr .= $id."'"; } // invoke graph Table $grafArgs = ''; $renderer->doc .= $cmd; return true; } }