Extension:EasyTimeline/installation

This section deals with issues on how to activate EasyTimeline in other MediaWiki installations.

EasyTimeline is an extension to the MediaWiki software. However you need to do a few things in order to activate it.

Note: when you run MediaWiki on another platform than Linux, the following may not apply or be incomplete.

Download Ploticus
EasyTimeline uses the open source program Ploticus, which is not included in the MediaWiki installation. Download the proper version for your OS here.

If you can't put the Ploticus executable pl in /usr/local/bin, or any of the other suggested locations, just make sure it's executable and put the appropriate location in LocalSettings.php ("how" explained below).

Important: Ploticus 2.30 has (Oct 29, 2004) a critical bug. Upgrade to 2.32 2.33.

Download PHP/PERL scripts
EasyTimeline.pl is the actual plug-in, written in perl.

Timeline.php is the MediaWiki php wrapper that invokes the perl script with proper arguments, and feeds generated image and image map (if applicable) to the html output.

Follow these links to get the latest revision of both files: php file, perl file. php internationalization file.

Do not use the EasyTimeline.pl script, or its compiled version, from the authors support page. These are meant for offline usage (= outside WikiMedia).

Important: Newest Ploticus (from 2.31) has changed behaviour. You'll need to patch the php file, see Charts not clickable below.

Install fonts
This might be necessary, especially if your system isn't configured with X. Download a font package that contains FreeSans.ttf, for example, from RPMbone. Install these (dependencies can be ignored) files, note the installation path, and copy that path and include it somewhere in LocalSettings.php (or patch the extension, in the renderTimeLine extension): putenv("GDFONTPATH=[...]"); // where [...] is the font path copied from above.

Settings
For background info see also Manual:Extending wiki markup

Some rename the PHP file from Timeline.php to EasyTimeline.php to match the perl file name. In any case make sure to refer to it correctly in the LocalSettings.php file: Obviously, the path specified is just an example, you may need to set these parameters differently.

On RHEL/CentOS, for instance,  is the ploticus executable. If the ploticus location on your system does not match the defaults listed at the top of, you will need to explicitly set the paths or create symlinks.

Script location
EasyTimeline.pl needs to be installed in $IP/extensions/timeline/EasyTimeline.pl (or make a symlink, of course)

Image directory
Create a directory for timeline images:

mkdir WIKIDIR/images/timeline chmod 777 WIKIDIR/images/timeline

Charts not clickable
Ploticus 2.30 is buggy and does never produce a HTML map file, so no clickable images.

Ploticus 2.31 has fixed this but has changed behaviour: map file is now written to stdout instead of file :(

So you need to apply the patch described below or download Timeline.php 1.7 with patch applied here (broken Link!).

Patch by Twhite

[twhite@home]$ diff EasyTimeline.php Timeline-1.7.php 48,58d47 <                else { <                   $lines = split("\n", $ret); <                   $handle = fopen($fname.".map", "w"); <                   for($i=0;$i < count($lines);$i++) { <                      // check if string is area part <                      if(strpos($lines[$i], "area shape") == 1) { <                         fwrite($handle, $lines[$i] . "\n"); <                      } <                    } <                    fclose($handle); <                }

Note: This bug has been resolved in Ploticus 2.32

If that still does not resolve problems you may want to simply change line 176 of EasyTimeline.pl to: $MapPNG = $true ; # switched when link or hint found since it doesn't seem to apply when wikistyled links are just used on text tags and it can be annoying to figure that out.

Windows only: Timeline error: Executable not found. Command line was:
If you are getting an error something like

Timeline error: Executable not found. Command line was: "C:/Perl/bin/perl.exe" "C:/Apache2/htdocs/wiki/extensions/timeline/EasyTimeline.pl" -i "C:/Apache2/htdocs/wiki/images/timeline/bebc64ea32049f9fe1f251640849a318" -m -P "C:/pl232win32/bin/pl.exe" -T "C:/Apache2/htdocs/wiki/images/tmp" -A "/wiki/$1"

try going into your php file (usually at Timeline.php or EasyTimeline.php) and changing $ret = `{$cmdline}`; into $ret = `"{$cmdline}"`;

You may also have modified the extension directory name, which will result in the same error even with the above fix. Set timelineFile to something like this in LocalSettings.php: $wgTimelineSettings->timelineFile = "$IP\\extensions\\EasyTimeline\\EasyTimeline.pl";

Windows only: set path to perl
When your mediawiki installation runs on Windows you will need to update Timeline.php. Set $wgTimelineSettings->perlCommand to the path to perl.exe. The default is /usr/bin/perl, this needs to be changed for Windows.

No texts displayed
The newest release of EasyTimeline contains a quick fix for unicode support. This requires free font FreeSans.ttf. If easytimeline.pl mentions FreeSans.ttf you have this recent version and maybe do not have that font in a directory where Ploticus looks. You might try to find where that is on your system: see Ploticus docs online, or revert to previous EasyTimeline.pl 1.13 at http://wikipedia.cvs.sourceforge.net/wikipedia/extensions/timeline/EasyTimeline.pl.

If you want a different font with reasonable code point coverage, try DejaVu, either Sans Condensed or Sans Extra-Light depending on your preferences.

Tweaking GDFONTPATH
On a Ubuntu system with  installed, the following change to Timeline.php will set   as required by Ploticus to render text with FreeSans.ttf. $cmdline = 'GDFONTPATH=/usr/share/fonts/truetype/freefont'. ' ' .          wfEscapeShellArg( $wgTimelineSettings->perlCommand, $IP . "/extensions/timeline/EasyTimeline.pl" ). " -i ". wfEscapeShellArg( $fname ). " -m -P ". wfEscapeShellArg( $wgTimelineSettings->ploticusCommand ). " -T ". wfEscapeShellArg( $wgTmpDirectory ). " -A ". wfEscapeShellArg( $wgArticlePath );

... or simply add "putenv("GDFONTPATH=/usr/share/fonts/truetype/freefont");" to your LocalSettings.php.