Extension:ImagePagePrintLink

ImagePagePrintLink will add a ”print this image” link to the list of links in the top of a image descriptions page. Printing is done using JavaScript, and the link will be visible only if JavaScript is enabled and printing is supported. Link will only show up for local files, as most browsers will not allow javascript to print from other domains, and only if the file is a (seemingly) printable image.

This extension was written for Säsongsmat.nu, Please feel free to improve or change anything if you feel you could use it somewhere else.

Requirements
Current version requires MediaWiki 1.17. Version 0.2 (see below) should work with anything > 1.16.0. Please add a line here if you try it with a different version. (Earlier versions will most likely not work.)

Requires jQuery, which is included by default with MediaWiki since 1.16.0.

Installation
Download the extension (ImagePagePrintLink 0.3.zip or ImagePagePrintLink 0.3.tar.gz), unpack it and put it in your extensions directory.

Add the following to LocalSettings.php:

Versions

 * 0.3 (requires MW >= 1.17)
 * ja translation
 * added title-attribute
 * using Resource loader
 * added ugly workaround for Google Chrome bug
 * 0.2
 * Make sure jQuery loads
 * Avoid conflict with parameter names for i18n
 * 0.1 first version, Swedish and English''

To do

 * Find a better way to handle Google Chrome printing issues in ext.ImagePagePrintLink.core.js. Chrome will close the window imediately, and then try to print an empty page. Therefore, the image page is not closed again if js detects Chrome. This is an ugly workaround, would be nice to get rid of it.
 * Use something more acurate than canRender to check if media is image?
 * Replace wgOut with getContext when we are using MW >= 1.18

Old versions
For MW < 1.17 you can use version 0.2: ImagePagePrintLink_0.2.zip · ImagePagePrintLink_0.2.tar.gz You will then have to manually add the following JavaScript snippet to your MediaWiki:Common.js (default for most skins), or where ever you have your Javascripts.