Extension:EasyTimeline/installation

From MediaWiki.org
Jump to: navigation, search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
English • ‎日本語

This section deals with issues on how to activate EasyTimelineExtension: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[edit]

EasyTimeline uses the open source program Ploticus, which is not included in the MediaWiki installation. Download the proper version for your OS: http://ploticus.sourceforge.net/doc/download.html

Or, if you are on Ubuntu with shell access, you can simply do

sudo apt install ploticus

EasyTimeline expects the Ploticus executable to be located at /usr/bin/ploticus, if it is not just make sure it's executable and put the appropriate location in $wgTimelinePloticusCommand described below.

Download PHP/PERL scripts[edit]

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.

Download it from Special:ExtensionDistributor/timeline

...or if you have shell access, go to your extensions directory, and type ...

git clone -b REL1_28 https://gerrit.wikimedia.org/r/p/mediawiki/extensions/timeline.git

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

Install fonts[edit]

EasyTimeline by default uses the font FreeSans.ttf, which can be downloaded from GNU FreeFont.

Or, if you are on Ubuntu with shell access, you can simply do

sudo apt install fonts-freefont-ttf

To make sure EasyTimeline can find FreeSans.ttf, set GDFONTPATH, described below.

Configure MediaWiki[edit]

Load extension[edit]

Add the following to you LocalSettings.php file:

wfLoadExtension( "timeline" ); // Add EasyTimeline extension

Ploticus[edit]

On RHEL/CentOS, for instance, /usr/bin/pl is the ploticus executable. If the ploticus location on your system does not match the defaults listed at the top of extensions/timeline/extension.json, you will need to explicitly set the paths, e.g.

Add the following to you LocalSettings.php file:

$wgTimelinePloticusCommand = "/usr/bin/pl"; // alternate location of ploticus, depending on OS

Alternatively you may create symlinks to the alternate location.

Note Note: The extension's default settings for ploticus and perl:

$wgTimelinePloticusCommand = "/usr/bin/ploticus";
$wgTimelinePerlCommand = "/usr/bin/perl";

Font[edit]

Add the following to your LocalSettings.php file to make sure EasyTimeline finds the font:

putenv("GDFONTPATH=/usr/share/fonts/truetype/freefont"); // Directory containing FreeSans.ttf.

If FreeSans.ttf is not available, instead set:

$wgTimelineFontFile = 'ascii'; // Use the internal Ploticus font

Image directory[edit]

Create a directory for timeline images and ensure it's read/writable by your web server's user. For example if your web server user is "www-data", you would do:

cd (wiki root directory)
mkdir images/timeline
chown www-data images/timeline

Known problems[edit]

Command Variables are Non-Transclusion[edit]

This problem occurs when an editor attempts to add certain words inside of the timeline which may be commands under document. One such example word instance would be for the word construction; when used in a timeline as a dated entry, an error type occurs, rendering the word construction as a command and not a clickable link.

Charts not clickable[edit]

Note Note: This bug has been resolved in Ploticus 2.32

If that still does not resolve problems you may want to simply edit 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:[edit]

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:

 $wgTimelineTimelineFile = "$IP\\extensions\\EasyTimeline\\EasyTimeline.pl";

Windows only: set path to perl[edit]

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

No texts displayed[edit]

EasyTimeline contains a quick fix for unicode support. This requires free font FreeSans.ttf. Maybe you 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.

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[edit]

On a Ubuntu system with ttf-freefont installed, the following change to Timeline.php will set GDFONTPATH as required by Ploticus to render text with FreeSans.ttf.

$cmdline = 'GDFONTPATH=/usr/share/fonts/truetype/freefont' . ' ' .
           wfEscapeShellArg( $wgTimelinePerlCommand, $IP . "/extensions/timeline/EasyTimeline.pl" ) .
  " -i " . wfEscapeShellArg( $fname ) . " -m -P " . wfEscapeShellArg( $wgTimelinePloticusCommand ) .
  " -T " . wfEscapeShellArg( $wgTmpDirectory ) . " -A " . wfEscapeShellArg( $wgArticlePath );

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