User:Mlong212
Appearance
All extensions have been installed on:
- Product || Version
- MediaWiki || 1.12.0
- PHP || 5.2.5 (cgi-fcgi)
- MySQL || 5.0.24-community-nt
- OS || Windoes Server 2003
Extensions
[edit]Graphviz
[edit]Main page: Extension:GraphViz
Required: Graphviz webpage or direct file link
- version 2.18
Some Windows operating systems may require run-time components of Visual C++ libraries to properly run Graphviz executables. click this link and install Microsoft Visual C++ 2005 Redistributable Package (x86).
Install directions
[edit]1.) install graphviz software I installed it to w:\graphviz2.18
- this path is referenced in the graphviz.php and needs to be changed to your install path
2.) add user rights
- use file browser and find cmd.exe and give internet users read/execute access
- give internet users read/execute access to the directory graphviz was installed to
3.) create Graphviz.php[1]
- save into your mediawiki/extensions folder
- edit about line 12 ( $wgGraphVizSettings->dotCommand = "w:\\graphviz2.18\\bin\\dot.exe"; ) to reflect your graphviz software installation
- note the two "\\" between directories
<?php
# CoffMan (http://www.wickle.com) code adapted from timeline extension.
# Timeline extension
# To use, include this file from your LocalSettings.php
# To configure, set members of $wgGraphVizSettings after the inclusion
class GraphVizSettings {
var $dotCommand;
};
$wgGraphVizSettings = new GraphVizSettings;
$wgGraphVizSettings->dotCommand = "w:\\graphviz2.18\\bin\\dot.exe";
$wgExtensionFunctions[] = "wfGraphVizExtension";
function wfGraphVizExtension() {
global $wgParser;
$wgParser->setHook( "graphviz", "renderGraphviz" );
#renderGraphviz (5);
}
function renderGraphviz( $timelinesrc )
{
global $wgUploadDirectory, $wgUploadPath, $IP, $wgGraphVizSettings, $wgArticlePath, $wgTmpDirectory;
$hash = md5( $timelinesrc );
$dest = $wgUploadDirectory."\\graphviz\\";
if ( ! is_dir( $dest ) ) { mkdir( $dest, 0777 ); }
if ( ! is_dir( $wgTmpDirectory ) ) { mkdir( $wgTmpDirectory, 0777 ); }
$fname = $dest . $hash;
// echo $fname;
if ( ! ( file_exists( $fname.".png" ) || file_exists( $fname.".err" ) ) )
{
$handle = fopen($fname, "w");
fwrite($handle, $timelinesrc);
fclose($handle);
$cmdline = wfEscapeShellArg( $wgGraphVizSettings->dotCommand) .
" -Tpng -o " . wfEscapeShellArg( $fname. ".png") . " " .
wfEscapeShellArg( $fname ) ;
$cmdlinemap = wfEscapeShellArg( $wgGraphVizSettings->dotCommand) .
" -Tcmapx -o " . wfEscapeShellArg( $fname. ".map") . " " .
wfEscapeShellArg( $fname ) ;
// echo $cmdline;
// exit;
// break;
// echo "ADIOS";
$ret = `"{$cmdline}"`;
$ret = `"{$cmdlinemap}"`;
unlink($fname);
/*
if ( $ret == "" ) {
// Message not localized, only relevant during install
return "<div id=\"toc\"><tt>Timeline error: Executable not found. Command line was: {$cmdline}</tt></div>";
}
*/
}
@$err=file_get_contents( $fname.".err" );
if ( $err != "" ) {
$txt = "<div id=\"toc\"><tt>$err</tt></div>";
} else {
//echo $fname.".map";
@$map = file_get_contents( $fname.".map" );
//echo "mapa-antes:".$map;
$map=preg_replace("#<ma(.*)>#"," ",$map);
$map=str_replace("</map>","",$map);
//echo "mapa:".$map;
if (substr(php_uname(), 0, 7) == "Fucker") {
$ext = "gif";
} else {
$ext = "png";
}
$txt = "<map name=\"$hash\">{$map}</map>".
"<img usemap=\"#{$hash}\" src=\"{$wgUploadPath}/graphviz/{$hash}.{$ext}\">";
}
return $txt;
}
?>
4.) edit mediawiki localsettings.php
- add the following 2 lines:
- include("extensions/Graphviz.php");
- $wgGraphVizSettings->dotCommand = "W:\\Graphviz2.18\\bin\\DOT.exe";
- change the dotcommand path to reflect your graphviz software installation
- note the two "\\" between directory names
Graph with links assigned to each
[edit]use
node [URL="http://10.0.0.3//index.php?title=\N"];
where " title=\ " = " title=namespace\ "
where " \N" " will become the page title and is derived from the chart values
<graphviz>
digraph G {
node [style=filled, color=black, fillcolor=ghostwhite];
bgcolor="transparent";
node [URL="http://www.mediawiki.org/w/index.php?title=User:Mlong212/\N"];
size ="8,8";
Top[shape=box, style=filled, fillcolor=lightblue];
Bottom [style=filled, fillcolor=lightblue];
Top -> Branch1;
Top -> Branch2;
Top -> Branch3];
Branch1 -> sub1;
Branch2 -> Bottom;
sub3 -> "almost there";
Branch3 -> sub3;
sub1 -> Bottom;
"almost there" -> Bottom;
}
|}
Inkscape
[edit]i gave up and installed imagemagick