Mediawiki Image Gallery Extension – WikiGallery

I was working with MediaWiki Gallery extension named “Smooth Gallery” which is based on JonDesign’s SmoothGallery . It was almost the thing i was looking for but not the exact one for my purpose. As a result I had to hack the code and modify it to fit my needs. You can download the extension and install it for your purpose. I have named it as WikiGallery as lots of things has been changed in this extension. This extension supports external images as well and hence give you more options to create a nice gallery.

A very special thanks to Ryan Lane & Jon

Details of the extension is given below:






Requirements: Mediawiki 1.9.0  and above [ I have not tested with earlier versions. ]


  1. Download the wikigallery files from here.
  2. unzip it to your extensions directory
  3. download wikigallery extension file from here
  4. unzip it and drop it into your extensions directory
  5. make sure $wgUseImageResize is enabled in your LocalSettings.php file
  6. add the following lines to your LocalSettings.php file and save

$wgWikiGalleryExtensionPath = “/mediawiki/extensions/wikigallery”;
$wgWikiGalleryDelimiter = “\n”;

Now the extension is ready and we can use it to our wiki pages. Edit a wiki page and add the following tag with image names delimited by the wikigallery delimiter as mentioned on LocalSettings.php file (in this case its \n , but it can be , # etc). For local files (uploaded in the wiki), we do not have to put anything. but for external images the http:// must be there.



Now save and check your page , you will see the gallery is there.


  •     I will try to keep the code updated with smooth gallery. But can not promise that.
  •     If you have any download issue, please inform me with your email address. I will send you the scripts in email.

Mediawiki tutorials coming soon…

Currently I am working with Mediawiki version 1.11 and lots of things have changed and new things emerged during last 1 year. So i feel that my book “Mediawiki administrator’s tutorial guide” requires some additional writings as well. From April 2008, i will be writing new tutorials every week on Mediawiki including some hacks, extensions and template design.

I hope it will be helpful for all Mediawiki users and administrators 🙂

Hack: Editing headers in MediaWiki Template.

Have you ever tried to put headers in MediaWiki and tried to edit them from page view? You might have been forwarded to template edit section instead of section edit. If you want to go to section edit section rather than template edit section then this small hack is for you.

here are the steps you have to perform:

1. open includes/Parser.php file from MediaWiki installed directory.

2. find the following line inside the formatHadings function.

# give headline the correct <h#> tag
if( $showEditLink && ( !$istemplate || $templatetitle !== “” ) ) {
if( $istemplate )
$editlink = $sk->editSectionLinkForOther($templatetitle, $templatesection);
$editlink = $sk->editSectionLink($this->mTitle, $sectionCount+1, $headline_hint);
} else {
$editlink = ”;
$head[$headlineCount] = $sk->makeHeadline( $level, $matches[‘attrib’][$headlineCount], $anchor, $headline, $editlink );

if( !$istemplate )

and replace with

if( $showEditLink && ( !$istemplate || $templatetitle !== “” ) ) {
$editlink = $sk->editSectionLink($this->mTitle, $sectionCount+1, $headline_hint);
} else {
$editlink = ”;
$head[$headlineCount] = $sk->makeHeadline( $level, $matches[‘attrib’][$headlineCount], $anchor, $headline, $editlink );


3. now save the file and test the feature.

you are all done to use this hack…

Running multiple instance of MediaWiki on the Same Server using the Same Source Code?

Note: The content is written for the “MediaWiki Administrators’ tutorial guide” book readers. So you will find some reference of the book here. Ignore those references if you do not have the book. You can download the PDF at the bottom of the article.

Sometime it might require for you to setup multiple MediaWiki site on the same server using the same source code. The reason behind using the same code base for multiple wiki is easy to maintain the changes. It is always easier to maintain a single thing rather than instances of the same thing. In order to accomplish this task you have to follow few simple methods.

1. Use same database server and same database with different tables or

2. Use same database server but different database or

3. Use different database server.

Before narrating the steps for achieving your target to setup multiple wiki using same source code, you have to know what will be the required things to consider before installing multiple wiki in a single server. First of all you need to separate the database configuration and other configuration (the configuration variables in LocalSettings.php file) into different files or separate them to work properly. The next important thing is to separate upload directory so that multiple wiki do not conflict in common files. Most of the time multiple wiki are required for multilingual purpose and in multilingual site same content is shown but in different language. There is a fair possibility that two wiki can have same image file name in use. In such case one will replace another. In order to avoid such unwanted circumstances, it is always better to separate the image folder for each wiki installation. The last thing to consider is the extensions that you are using for the existing wiki. You can make a common extension file and place all the extension to that file so that all the wiki instances share the common extensions. Now let me show you the ways you can make it work:

Let’s make it work:

In chapter two of the book you have learned how to install MediaWiki at your server. You also learned the fact that you have to move the LocalSettings.php file in the root folder for the installation to work. Now here are steps to apply.

1. Rename your existing LocalSettings.php file to Wiki_one_settings.php or anything you want to.

2. Now open a browser window and type your URL location for the wiki. If your URL is then try to browse the .

3. You will be taken to the installation page same as described in chapter 2. You have to follow the same steps until the database configuration section. As you know you can choose the same database but different prefix for new installation or you can choose a new database name for the new installation or even choose a new server located in some other place for the new installation. Here is the place you have to enter the database information.

4. If you want to use the same database but different tables then we gave to add database table prefix in the colored region of the image. You can add any prefix for the new tables. If you wan to add new database then add database name in the database name field.

5. After putting all required information, click the install button to install new instance of MediaWiki. A new instance of the MediaWiki database has been added to the database server according to your chosen method and a new LocalSettings.php file is also created in the Config folder. Like you did in chapter two, you have to place this file in the root folder. But you have to play another little trick here. Since it is used for second wiki, we have to rename the file as Wiki_two_settings.php (or any name that you want to) and then you can place it in the root folder.

6. Now you have two settings file Wiki_one_settings.php and Wiki_two_settings.php but no LocalSettings.php file. So you have to create a file named LocalSettings.php. You can have two scenarios over here:

a. First of all you can have wikis are in different directories or sub domains linked to the same directory on our server

b. We have different domains that link to one directory on your server

For the first scenario we have to write the following code and save it as LocalSettings.php.

$callingURL = strtolower($_SERVER['REQUEST_URI']); //the requesting url
if ( strpos( $callingURL, 'wikione') ) {
else if ( strpos( $callingURL, 'wikitwo') ) {
        require_once('Wiki_two_settings.php' );    

For the second scenario we have to write the following code and save it as LocalSettings.php

$callingURL = strtolower($_SERVER['SERVER_NAME']);
$pos = strpos( $callingURL, ‘firstwiki’); //e.g.
if ( $pos === false ) {

Now you run the wiki and see the different wiki using the same source code. If your site address is then browse and also . You will find the difference by yourself.

Note: To link the sub domains to the server, you might need to edit the configuration file of the server or change the DNS configuration of the site.


Setting Different Image directory:

If you want to set different upload directory for each wiki installation, you can do that too. Just define the upload directory on each of the LocalSettings.php file for each wiki. First you have to make sure that the file upload option is enabled. Then add the following line at the end of the LocalSettings.php file.

For example for the first wiki you have to write the following line

$wgUploadDirectory = “{$IP}/images”;

And for the second wiki you can use different directory

$wgUploadDirectory = “{$IP}second_/images”;

Now save the file and access the pages. We are all done with setting different image directory for each wiki.

Sharing common resources:

Sometime it might be required for you to share files and extensions for your wiki installation. For creating a shared directory we have to write the following lines from DefaultSettings.php to LocalSettings.php file for each LocalSettings.php file.

$wgUseSharedUploads = true;

$wgSharedUploadPath = ‘http://yourwikiname/images&#8217;;

$wgSharedUploadDirectory = ‘/(LOCALPATH)/Folder Name/images/’;

$wgHashedSharedUploadDirectory = true;

In order to share common extensions first you need to copy all the extensions inclusion to a common file. You can name the file anything you want to. Now include the common extension file in every LocalSettings.php file you have created. So if you need to add/remove any extension you just have to edit the common extension file not every settings file.

This way you can integrate multiple wiki using the same code base. You can play around with the LocalSettings.php file as you can put some kind of switching command instead of creating separate setting files. The way is shown and you can apply your knowledge for something better.

Note: if you are looking for more references then you can look at the following sites. They are very well explained.

[Download PDF]

I got my Book on hand!!!!!!!

After waiting for a month, finally i got the printed copy of my book on my hand. It’s a feeling that i can’t express in few words. Though i was baffled by the wrong address posting of the book byPackt, but finally it arrived to the right place.

The book just look awesome to me. I wish the people also find it useful and interesting.
I am now anxiously waiting for few reviews from the readers to know the actual reaction from my audience.

MediaWiki – Nice to have

So far the journey of wiki has been very pleasant to me. I liked the wiki concept and technology it focuses. Mediawiki comes with lots of features and extensions which are really cool. But still i feel that there should be some very good features included in future MediaWiki. Here are my few thoughts:
1. More security options, such as section based protection. currently mediawiki have the option to protect a page not a section. we know in multi user environment many people can contribute their part in a single article. there might be the necessity to protect individual contribution rather than the complete page.

2. The wiki editor can be enhanced little bit to add few more options to make life bit easier. It is not right to expect an end user will know the complete wiki syntax to use it appropriately. May be a WYSIWYG in wiki mode will be good choice.
3. Article save and publish option. currently wiki does not have the ability to save an incomplete article. this option will really help the writers to write articles and publish them once its complete.  It will be also nice to have an auto draft options for articles. so that nothing is lost accidentally.

4. an integrated comments system for the article. it can be kept as an option in the article edit section and will be shown in the view of the article page.

5. last but not least , more of a web 2.0 featured. it will be really cool to load contents dynamically using AJAX and give it a look and feel of a web 2.0 site.