Extension:PChartWiki
This extension stores its source code on a editable wiki page rather than in a code repository. As a result, this code may be maliciously altered. It may contain security vulnerabilities, and will not receive localisation updates from translatewiki.net. Developers are strongly encouraged to host their code in a code repository rather than a wiki page so that the extension can be properly maintained, reviewed, and kept secure. |
This extension is currently not actively maintained! Although it may still work, any bug reports or feature requests will more than likely be ignored. |
Release status: unmaintained | |
|---|---|
| Implementation | Tag |
| Description | Adds <pchart> tag for creating pCharts |
| Author(s) | Ripley Jonez |
| MediaWiki | |
| License | GNU General Public License 2.0 |
| Download | No link |
What can this extension do?
[edit]The pChartWiki feature produces an embedded image from wikitext, much in the same way as Erik Zachte's EasyTimeline. It works as a wrapper for the pChart php class (Version 1.27d), http://pchart.sourceforge.net/
What isn't in this extension?
[edit]The following methods have not been carried over from the original pChart class, but that doesn't mean they wont in the future.
- ImportFromCSV
- drawFromPNG
- drawFromGIF
- drawFromJPG
- Stroke
- setImageMap
- getImageMap
Usage
[edit]This code is INCOMPLETE and will only render a radar graph. It has NOT been TESTED for any vulnerabilities either.
Download instructions
[edit]Please cut and paste the code found below and place it in $IP/extensions/ExtensionName/ExtensionName.php. Note: $IP stands for the root directory of your MediaWiki installation, the same directory that holds LocalSettings.php.
Installation
[edit]To install this extension, add the following to LocalSettings.php:
#add configuration parameters here #setup user rights here require_once("$IP/extensions/pChartWiki/pChart.php"); Configuration parameters
[edit]User rights
[edit]Code
[edit]<?php /** * pChartWiki - pChart extension * To use, include this file from your LocalSettings.php * To configure, set members of $pChartWikiSettings after the inclusion * * @file * @ingroup Extensions * @author Ripley Jonez <xxx@gmail.com (nospam: xxx=endofzero)> * @license GNU General Public License version 2 * @link http://www.mediawiki.org/wiki/Extension:pChartWiki Documentation */ //$fontPath = $IP.'/extensions/pChartWiki/pChart/Fonts'; $fontPath = '/usr/share/fonts/truetype/freefont'; require("$IP/extensions/pChartWiki/pChart/pData.class"); require("$IP/extensions/pChartWiki/pChart/pChart.class"); class pChartWikiSettings { // Update this timestamp to force older rendered timelines // to be generated when the page next gets rendered. // Can help to resolve old image-generation bugs. var $epochTimestamp = '20010115000000'; }; $pChartWikiSettings = new pChartWikiSettings; $wgHooks['ParserFirstCallInit'][] = 'pChartWikiExtension'; $wgExtensionCredits['parserhook'][] = array( 'path' => __FILE__, 'name' => 'pChartWiki', 'author' => 'Ripley Jonez', 'url' => 'http://www.mediawiki.org/wiki/Extension:pChartWiki', 'descriptionmsg' => 'pchart-desc', 'license-name' => 'GPL-2.0', ); $wgExtensionMessagesFiles['pChart'] = dirname(__FILE__) . '/pChart.i18n.php'; function pChartWikiExtension( &$parser ) { $parser->setHook( 'pchart', 'renderpChart' ); return true; } function renderpChart( $pchartsrc ){ global $wgUploadDirectory, $wgUploadPath, $IP, $pChartWikiSettings, $wgArticlePath, $wgTmpDirectory, $wgRenderHashAppend, $fontPath; $debug = FALSE; // Class initialisation $DataSet = new pData; //Parse source into array based on lines $pChartArray = explode("\n", $pchartsrc); //Create hash based on tag source $hash = md5( $pchartsrc ); //Create a filename based on the hash if ($wgRenderHashAppend != "") $hash = md5( $hash . $wgRenderHashAppend ); $dest = $wgUploadDirectory."/pchart/"; if ( ! is_dir( $dest ) ) { mkdir( $dest, 0777 ); } if ( ! is_dir( $wgTmpDirectory ) ) { mkdir( $wgTmpDirectory, 0777 ); } $fname = $dest . $hash; $previouslyFailed = file_exists( $fname.".err" ); $previouslyRendered = file_exists( $fname.".png" ); $expired = $previouslyRendered && ( filemtime( $fname.".png" ) < wfTimestamp( TS_UNIX, $wgTimelineSettings->epochTimestamp ) ); if ( $expired || ( !$previouslyRendered && !$previouslyFailed ) ){ // This time, make a list of attributes and their values, // and dump them, along with the user input //Parse through array and create chart foreach( $pChartArray as $name => $value ){ //Only process if $value isn't blank if (trim($value) != ""){ //Separate command with values $parseString = explode(":",$value); switch (strtolower(trim($parseString[0]))){ case debug: $debug=True; $attr[] = htmlspecialchars( "ON Debug" ); break; case addpoint: $inputSplit = explode(";",$parseString[1]); if (count($inputSplit)==1){ $DataSet->AddPoint((explode("," , trim($inputSplit[0])))); $attr[] = htmlspecialchars( "\$DataSet->AddPoint(array(".$inputSplit[0]."))" ); }elseif (count($inputSplit)==2){ $DataSet->AddPoint((explode("," , trim($inputSplit[0]))),trim($inputSplit[1])); $attr[] = htmlspecialchars( "\$DataSet->AddPoint(array(".$inputSplit[0]."),".trim($inputSplit[1]).")"); }elseif (count($inputSplit)==3){ $DataSet->AddPoint((explode("," , trim($inputSplit[0]))),trim($inputSplit[1]),trim($inputSplit[2])); $attr[] = htmlspecialchars( "\$DataSet->AddPoint(array(".$inputSplit[0]."),".trim($inputSplit[1]).",".trim($inputSplit[2]).")"); }else{ $attr[] = '<strong>ERR: ' . htmlspecialchars( $name ) . '</strong> = ' . htmlspecialchars( $parseString[0]." -> ".$parseString[1] ); } break; case addserie: $DataSet->AddSerie(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->AddSerie(".trim($parseString[1]).")" ); break; case addallseries: $DataSet->AddAllSeries(); $attr[] = htmlspecialchars( "\$DataSet->AddAllSeries()"); break; case removeserie: $DataSet->RemoveSerie(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->RemoveSerie(".trim($parseString[1]).")" ); break; case setabsciselabelserie: $inputSplit = explode(";",$parseString[1]); if (count($inputSplit)==0){ $DataSet->SetAbsciseLabelSerie(); $attr[] = htmlspecialchars( "\$DataSet->SetAbsciseLabelSerie()"); }elseif (count($inputSplit)==1){ $DataSet->SetAbsciseLabelSerie(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetAbsciseLabelSerie(".trim($parseString[1]).")"); } break; case setseriename: $inputSplit = explode(";",$parseString[1]); if (count($inputSplit)==1){ $DataSet->SetSerieName(trim($inputSplit[0])); $attr[] = htmlspecialchars( "\$DataSet->SetSerieName($inputSplit[0])"); }elseif (count($inputSplit)==2){ $DataSet->SetSerieName(trim($inputSplit[0]),trim($inputSplit[1])); $attr[] = htmlspecialchars( "\$DataSet->SetSerieName($inputSplit[0],$inputSplit[1])"); }else{ $attr[] = '<strong>ERR: ' . htmlspecialchars( $name ) . '</strong> = ' . htmlspecialchars( $parseString[0]." -> ".$parseString[1] ); } break; case setyaxisname: $DataSet->SetYAxisName(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetYAxisName($parseString[1])"); break; case setxaxisname: $DataSet->SetXAxisName(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetXAxisName($parseString[1])"); break; case setyaxisformat: $DataSet->SetYAxisFormat(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetYAxisFormat($parseString[1])"); break; case setxaxisformat: $DataSet->SetXAxisFormat(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetXAxisFormat($parseString[1])"); break; case setyaxisunit: $DataSet->SetYAxisUnit(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetYAxisUnit($parseString[1])"); break; case setxaxisunit: $DataSet->SetXAxisUnit(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->SetXAxisUnit(".trim($parseString[1]).")"); break; case removeseriename: $DataSet->removeSerieName(trim($parseString[1])); $attr[] = htmlspecialchars( "\$DataSet->removeSerieName(".trim($parseString[1]).")"); break; case pchart: $inputSplit = explode(",",$parseString[1]); $Test = new pChart(trim($inputSplit[0]),trim($inputSplit[1])); $attr[] = htmlspecialchars( "\$Test = new pChart($inputSplit[0],$inputSplit[1])"); break; case drawbackground: $inputSplit = explode(",",$parseString[1]); if (count($inputSplit)==3){ $Test->drawBackground(trim($inputSplit[0]),trim($inputSplit[1]),trim($inputSplit[2])); $attr[] = htmlspecialchars( "\$Test->drawBackground($inputSplit[0],$inputSplit[1],$inputSplit[2])"); }else{ $attr[] = '<strong>ERR: ' . htmlspecialchars( $name ) . '</strong> = ' . htmlspecialchars( $parseString[0]." -> ".$parseString[1] ); } break; case setfontproperties: $inputSplit = explode(",",$parseString[1]); $Test->setFontProperties("$fontPath/$inputSplit[0]",$inputSplit[1]); $attr[] = htmlspecialchars( "\$Test->setFontProperties($fontPath/$inputSplit[0],$inputSplit[1])"); break; case drawfilledroundedrectangle: $inputSplit = explode(",",$parseString[1]); $Test->drawFilledRoundedRectangle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7]); $attr[] = htmlspecialchars( "\$Test->drawFilledRoundedRectangle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7])"); break; case drawroundedrectangle: $inputSplit = explode(",",$parseString[1]); $Test->drawRoundedRectangle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7]); $attr[] = htmlspecialchars( "\$Test->drawRoundedRectangle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7])"); break; case setgrapharea: $inputSplit = explode(",",$parseString[1]); if (count($inputSplit)==4){ $Test->setGraphArea($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3]); $attr[] = htmlspecialchars( "\$Test->setGraphArea($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3])"); }else{ $attr[] = '<strong>ERR: ' . htmlspecialchars( $name ) . '</strong> = ' . htmlspecialchars( $parseString[0]." -> ".$parseString[1] ); } break; case drawtreshold: $inputSplit = explode(",",$parseString[1]); if (count($inputSplit)==4){ $Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3]); $attr[] = htmlspecialchars( "\$Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3])"); }elseif (count($inputSplit)==5){ $Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4]); $attr[] = htmlspecialchars( "\$Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4])"); }elseif (count($inputSplit)==6){ $Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5]); $attr[] = htmlspecialchars( "\$Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5])"); }elseif (count($inputSplit)==7){ $Test->SetSerieName($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6]); $attr[] = htmlspecialchars( "\$Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6])"); }elseif (count($inputSplit)==8){ $Test->SetSerieName($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7]); $attr[] = htmlspecialchars( "\$Test->drawTreshold($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7])"); }else{ $attr[] = '<strong>ERR: ' . htmlspecialchars( $name ) . '</strong> = ' . htmlspecialchars( $parseString[0]." -> ".$parseString[1] ); } break; case drawradaraxis: $inputSplit = explode(",",$parseString[1]); $Test->drawRadarAxis($DataSet->GetData(),$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7]); $attr[] = htmlspecialchars( "\$Test->drawRadarAxis(\$DataSet->GetData(),\$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6],$inputSplit[7])"); break; case drawfilledradar: $inputSplit = explode(",",$parseString[1]); $Test->drawFilledRadar($DataSet->GetData(),$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1]); $attr[] = htmlspecialchars( "\$Test->drawFilledRadar(\$DataSet->GetData(),\$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1])"); break; case drawlegend: $inputSplit = explode(",",$parseString[1]); $Test->drawLegend($inputSplit[0],$inputSplit[1],$DataSet->GetDataDescription(),$inputSplit[2],$inputSplit[3],$inputSplit[4]); $attr[] = htmlspecialchars( "\$Test->drawLegend($inputSplit[0],$inputSplit[1],\$DataSet->GetDataDescription(),$inputSplit[2],$inputSplit[3],$inputSplit[4])"); break; case drawtitle: $inputSplit = explode(",",$parseString[1]); $Test->drawTitle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6]); $attr[] = htmlspecialchars( "\$Test->drawTitle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6])"); break; case drawbargraph: $inputSplit = explode(",",$parseString[1]); if ($inputSplit[0]=="TRUE"){ $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE); }else{ $Test->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),FALSE); } $attr[] = htmlspecialchars( "\$Test->drawBarGraph($inputSplit[0])"); break; case drawstackedbargraph: $inputSplit = explode(",",$parseString[1]); if ($inputSplit[0]=="TRUE"){ $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE); }else{ $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),FALSE); } $attr[] = htmlspecialchars( "\$Test->drawStackedBarGraph($inputSplit[0])"); break; case drawplotgraph: $inputSplit = explode(",",$parseString[1]); $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); $attr[] = htmlspecialchars( "\$Test->drawTitle($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6])"); break; case setyaxisname: $DataSet->SetYAxisName("$parseString[1]"); $attr[] = htmlspecialchars( "\$DataSet->SetYAxisName($parseString[1])"); break; case setyaxisunit: $DataSet->SetYAxisUnit("$parseString[1]"); $attr[] = htmlspecialchars( "\$DataSet->SetYAxisUnit($parseString[1])"); break; case drawgrapharea: $inputSplit = explode(",",$parseString[1]); if (trim($inputSplit[3])=="TRUE"){ $Test->drawGraphArea($inputSplit[0],$inputSplit[1],$inputSplit[2],TRUE); $attr[] = htmlspecialchars( "\$Test->drawGraphArea($inputSplit[0],$inputSplit[1],$inputSplit[2],TRUE)"); }else{ $Test->drawGraphArea($inputSplit[0],$inputSplit[1],$inputSplit[2],FALSE); $attr[] = htmlspecialchars( "\$Test->drawGraphArea($inputSplit[0],$inputSplit[1],$inputSplit[2],FALSE)"); } break; case drawscale: $inputSplit = explode(",",$parseString[1]); if (count($inputSplit)==8){ if ($inputSplit[0]=="SCALE_NORMAL"){ if ($inputSplit[4]=="TRUE"){ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],FALSE); } }else{ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],FALSE); } } }elseif ($inputSplit[0]=="SCALE_START0"){ if ($inputSplit[4]=="TRUE"){ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],FALSE); } }else{ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],FALSE); } } }elseif ($inputSplit[0]=="SCALE_ADDALL"){ if ($inputSplit[4]=="TRUE"){ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],FALSE); } }else{ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],FALSE); } } }elseif ($inputSplit[0]=="SCALE_ADDALLSTART0"){ if ($inputSplit[4]=="TRUE"){ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6],FALSE); } }else{ if ($inputSplit[7]=="TRUE"){ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],TRUE); }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALLSTART0,$inputSplit[1],$inputSplit[2],$inputSplit[3],FALSE,$inputSplit[5],$inputSplit[6],FALSE); } } } }else{ $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6]); } $attr[] = htmlspecialchars( "\$Test->drawScale(\$DataSet->GetData(),\$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6])"); break; case drawrightscale: $inputSplit = explode(",",$parseString[1]); $Test->drawRightScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,$inputSplit[1],$inputSplit[2],$inputSplit[3],TRUE,$inputSplit[5],$inputSplit[6]); $attr[] = htmlspecialchars( "\$Test->drawRightScale(\$DataSet->GetData(),\$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5],$inputSplit[6])"); break; case drawgrid: $inputSplit = explode(",",$parseString[1]); $Test->drawGrid($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5]); $attr[] = htmlspecialchars( "\$Test->drawGrid($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5])"); break; case drawlinegraph: $inputSplit = explode(",",$parseString[1]); $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); $attr[] = htmlspecialchars( "\$Test->drawLineGraph(\$DataSet->GetData(),\$DataSet->GetDataDescription())"); break; case drawcubiccurve: $inputSplit = explode(",",$parseString[1]); $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); $attr[] = htmlspecialchars( "\$Test->drawCubicCurve(\$DataSet->GetData(),\$DataSet->GetDataDescription())"); break; case drawfilledcubiccurve: $inputSplit = explode(",",$parseString[1]); $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),trim($inputSplit[0]),trim($inputSplit[1])); $attr[] = htmlspecialchars( "\$Test->drawFilledCubicCurve(\$DataSet->GetData(),\$DataSet->GetDataDescription(),$inputSplit[0],$inputSplit[1])"); break; case setfixedscale: $inputSplit = explode(",",$parseString[1]); if (count($inputSplit)==2){ $Test->setFixedScale($inputSplit[0],$inputSplit[1]); $attr[] = htmlspecialchars( "\$Test->setFixedScale($inputSplit[0],$inputSplit[1])"); }elseif (count($inputSplit)==5){ $Test->setFixedScale($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5]); $attr[] = htmlspecialchars( "\$Test->setFixedScale($inputSplit[0],$inputSplit[1],$inputSplit[2],$inputSplit[3],$inputSplit[4],$inputSplit[5])"); } break; default: $attr[] = '<strong>ERR: ' . htmlspecialchars( $name ) . '</strong> = ' . htmlspecialchars( $parseString[0]." -> ".$parseString[1] ); } } // if } // foreach //$Test->setLabel($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie1",3,"Test"); //$Test->reportWarnings("GD"); $Test->Render($fname.".png"); //echo $fname; if (wfIsWindows()) { $ext = "gif"; } else { $ext = "png"; } $url = "{$wgUploadPath}/pchart/{$hash}.{$ext}"; $txt = "<img src=\"" . htmlspecialchars( $url ) . "\">"; if( $expired ) { // Replacing an older file, we may need to purge the old one. global $wgUseSquid; if( $wgUseSquid ) { $u = new SquidUpdate( array( $url ) ); $u->doUpdate(); } } } if ($debug==True){ return $txt . implode( '<br />', $attr ) . "\n\n" . htmlspecialchars( $input ); }else{ return $txt; } } ?> 