URL: http://metabolomics.jp/
*/
if( !defined( 'MEDIAWIKI' ) ){
die( 'This file is a MediaWiki extension, see CreateGraph.php.' );
}
$wgExtensionFunctions[] = 'efSetupCreateGraph';
$wgExtensionCredits['parserhook'][] = array(
'name' => 'CreateGraph',
'version' => '0.2',
'author' => 'K, Suwa',
'description' => 'Create and display to graph, powered by jpgraph',
'url' => 'http://metabolomics.jp/wiki/Help:Extension/CreateGraph',
);
$wgHooks['LanguageGetMagic'][] = 'efCreateGraphLanguageGetMagic';
class CreateGraph {
/**
* create graph
* e.g. {{#graph:vbar|size=300x300;title=test;legend=0x0;label=a,b,c;data1=10,34,20}} => [create bar graph]
*
* @param $parser Parser Parent parser
* @param $kind string kind of graph ( line, hbar, vbar, pie, pie3 )
* @param $data string data which separated ';'
* @return string tag extension
*/
function graph( &$parser, $kind = '', $data )
{
$str = '';
if( method_exists( $parser, 'preprocessToDom' ) ){
# mw 1.12 or later
return array( $parser->preprocessToDom( $str ), 'isChildObj' => true );
}
# mw 1.11 or under
return $str;
}
function replaceGraphLink( $input, $args, $parser ) {
global $egScriptPath;
if( !isset( $args['graph'] ) || !isset( $args['data'] ) ){
return '';
}
$html = '
';
}
}
function efSetupCreateGraph() {
global $wgParser;
$createGraph = new CreateGraph;
$wgParser->setFunctionHook( 'graph', array( &$createGraph, 'graph' ) );
$wgParser->setHook( 'graph', array( &$createGraph, 'replaceGraphLink' ) );
}
function efCreateGraphLanguageGetMagic( &$magicWords, $langCode ) {
$magicWords['graph'] = array( 0, 'graph' );
return true;
}