Extensions FAQ

How do I enable an extension?
For most extensions, copy the extension PHP file to your extensions folder and add a require_once( "extensions/ExtensionName/ExtensionName.php" ); statement to your LocalSettings.php, with ExtensionName being the filename of your extension, such as MyExtension.php. Some extensions, however, have additional steps and/or different installation procedures.

See also Manual:Extensions

How do I write my own extension?
See Manual:Developing extensions.

How do I disable caching for pages using my extension?
If you're writing e.g. special page:

For parser tag hooks:

Special pages
When rendering output that will not be subject to parser cache, such as on a special page

where $text is the wikitext to be parsed.

Parser hooks
See Manual:Tag extensions

How do I enable searching in my extension's output (dynamic content)?
You can't. Dynamic content can not be included in a static index.

How can I avoid modification of my extension's HTML output?
See Manual:Tag extensions

How can I pass XML-style parameters in my extension tag?
See Manual:Tag extensions

Extensions and Templates
See Manual:Tag extensions

"NaodW..." or "UNIQ..."
In previous version of MediaWiki, another problem with templates and extensions was the appearance of "NaodW..." or "UNIQ..." strings in the template output. MediaWiki 1.5(.1) has problems with some PHP versions that causes that output. You should upgrade to MediaWiki 1.5.2 or later.

Another clue is that your extension (or another one installed) might be using parse function instead of recursiveTagParse. Then change it to recursiveTagParse (using the parser given in parameter or $wgParser).

How can I determine in my extension, if an article is protected or not?
Use the Title class and the isProtected method, e.g.

What permissions do I apply to the extensions folder?
All the scripts in the /wiki structure need to be readable and executable by the user that PHP runs as. All perms are usually 755 and owner/group being a different user. The LocalSettings.php file is created by the script on setup and so will be an example to set the rest by.

How do I get my extension to show up on Special:Version?
See Manual:Developing extensions