Manual:Extensions
Extensions let you customize how MediaWiki looks and works.
- Wiki users can browse through extensions.
- System administrators can install (or remove) extensions on the MediaWiki installations that they manage.
- Developers can write new extensions or improve or maintain extensions.
While some extensions are maintained by MediaWiki developers, others were written by third-party developers. As a result, many have bugs, and they are not all guaranteed to be compatible with each other. Some are unmaintained; not all extensions work on all versions of MediaWiki. Use any extension, especially those tagged as insecure, at your own risk. If you are using an extension that requires patches to the core software, be sure to backup your database. This helps avoid the risk of breaking your wiki.
Types of extensions
Parser tags
Parser functions
Hooks
Special pages
Skins
Magic words
Page content models
Authentication
Browsing extensions
You can browse Category:Extensions by category to see the full range of extensions that have already been written. For information on installing these extensions or writing your own, see below.
Checking installed extensions
Only someone with administration access to the filesystem (and often the database too) on a server can install extensions for MediaWiki, but anyone can check which extensions are active on an instance of MediaWiki by accessing the Special:Version page. For example, these extensions are active in the English Wikipedia.
Installing an extension
MediaWiki is ready to accept extensions just after installation is finished. To add an extension follow these steps:
- Before you start
- Many extensions provide instructions designed for installation using unix commands. You require shell access (SSH) to enter these commands listed on the extension help pages.
- Download your extension.
- Extension Distributor helps you to select and download most of the popular extensions.
- Extensions are usually distributed as modular packages. They generally go in their own subdirectory of
$IP /extensions/
. A list of extensions stored in the Wikimedia Git repository is located at git:mediawiki/extensions. Some extensions don't use version control and are not recommended. - Some extensions are also available in bundles, composer or package repositories.
- Install your extension..
- At the end of the
LocalSettings.php
file, add: wfLoadExtension( 'ExtensionName' );
- This line forces the PHP interpreter to read the extension file, and thereby make it accessible to MediaWiki.
- Some extensions can conflict with maintenance scripts, for example if they directly access $_SERVER (not recommended).
- In this case they can be wrapped in the conditional so maintenance scripts can still run.
- At the end of the
if ( !$wgCommandLineMode ) {
wfLoadExtension ( 'ExtensionName' );
}
- The maintenance script importDump.php will fail for any extension which requires customized namespaces which is included inside the conditional above such as Extension:Semantic MediaWiki , Extension:Page Forms .
- Ensure that required permissions are set for extensions!
- While this installation procedure is sufficient for most extensions, some require a different installation procedure. Check your extension's documentation for details.
- If you want to alter configuration variables in LocalSettings.php, you have to do this typically after including the extension. Otherwise defaults defined in the extension will overwrite your settings.
Upgrading an extension
Some extensions require to be updated whenever you update MediaWiki, while others work with multiple versions. To upgrade to a new version of an extension:
- Download the new version of the extension
- Replace all the extension files in the
extension/ExtensionName
directory with the new files. Do not remove the extension configuration present in LocalSettings.php - If the extension requires changes to the MediaWiki database, you will need to run the Update.php maintenance script. Most extensions will mention if this script needs to be run or not. (Perform backup of your data before executing the script). If you don't have command line access, you can also use the web updater.
Uninstalling an extension
Remove the line from LocalSettings.php with the extension name to uninstall it:
wfLoadExtension( 'ExtensionName' );
- You must remove any lines pertaining to the configuration of the extension.
- If the extension provides any database changes, you must run update.php to remove them.
See also
- Category:Extensions
- Template:Extension
- Manual:Developing extensions
- Manual:Translating extensions - Information about translating extensions.