Extension:PChartWiki
This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered. They may contain security holes, outdated interfaces that are no longer compatible etc. Note: No localisation updates are provided for this extension by translatewiki.net . |
This extension is currently not actively maintained! Although it may still work, any bug reports or feature requests will more than likely be ignored. |
pChartWiki 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;
}
}
?>