Extension:MultimediaViewer

The MultimediaViewer extension gives the user of a wiki a different interface for viewing full-size, or nearly full-size, images in their browser without extraneous page loads or confusing interstitial pages.

Installation
Option A: use Vagrant. See the MediaWiki-Vagrant page for instructions to get a MediaWiki installation going with a Vagrant virtual machine system.

Then do  and then.

Option B: install manually.

First, consider installing Extension:BetaFeatures. It may be helpful to hide the media viewer feature behind a preference. If you don't install this, it will be enabled everywhere. MultimediaViewer uses the GetBetaFeaturePreferences hook, which is created and run from BetaFeatures, to register this preference.

You'll also likely want to download Extension:CommonsMetadata - it's not a hard requirement, but without it you won't get very much information in your lightboxes.

Configuration

 * will register a preference with ext-betafeatures>Extension:BetaFeatures|BetaFeatures if set to "true"


 * and  will determine whether MMV is enabled  by default for everyone and for anonymous users, respectively. They both default to true.


 * will improve performance when enabled, but can be fragile depending on how the wiki is set up (it will probably work fine if you use a thumb>Manual:thumb.php|404 handler).

If neither  nor   are set, MMV will be turned on for all users!


 * Forced download

To ensure files are offered for download and not viewed in the user's browser following a click on the Download … button, the server has to be configured, except when using vagrant:

If the requested URL to an image directory contains the  query parameter, the  -header must be set to.

This can be achieved in Apache and compatible servers [https://gerrit.wikimedia.org/r/#/c/120614/3/puppet/templates/content_disposition_attachment.conf.erb using mod_rewrite and mod_headers in a  file].

Varnish configuration can look [https://gerrit.wikimedia.org/r/#/c/120617/7/templates/varnish/upload-frontend.inc.vcl.erb like this].

Using the extension
First thing, before testing, is to make sure you're logged in and you have the preference enabled: Log in to the wiki and go to Special:Preferences, then visit the "Beta features" tab and check the appropriate box.

Next, go to a page that has a thumbnail on it. Try clicking on the image or on the "expand" icon near it. The lightbox should pop up and give you a bigger view of the image.

If you'd prefer, there's an test>Extension:MultimediaViewer/Exported test wiki|exported test environment that you can use via Special:Import to quickly set up a suitable testing environment.

Extending with user scripts
If you want to add functionality, you'll have to dig around in the classes and change the functionality pretty manually. We'll work on making this a nicer experience, but given the class and method hierarchy we've built, we think it's not terribly difficult right now.

HOWEVER, you should avoid doing this too much. If things change internally, then your code might break in unexpected ways, and you (and your users) will be surprised. Don't let that happen, and wait for a more stable way to extend the product.

See metadata>Extension:MultimediaViewer/Extension:Metadata|/Extension:Metadata for an example.