6 April 2007

From Organic Design wiki
Warning.svg This is a blog item that needs to be converted to the new Bliki format


New MediaWiki extensions

Some work we've been doing for a client using MediaWiki on their intranet has required us to extend the functionality in various ways. The first example of this was a requirement for a simple security extension since none of the ones available quite suited their needs. Later, we needed to upgrade our tree view extension to handle recursion using normal transclusion syntax, and to allow tree items to be filtered by security permissions.

The clients main tree is in the side bar like ours, but has become very large, requiring around 150KB of data to be rendered and transferred for every page request. To get around this problem we created a new extension called Livelets which is used in a similar way to transcluding an article. The difference is that the content in each of the livelets is separately requested by the browser after the main page has loaded. This means that the page becomes responsive almost immediately, and also the browser can locally cache the livelet content to significantly reduce the amount of bandwidth use.

Soon the livelets will be able to keep their content up to date automatically without requiring the page to regularly poll the server for change information - hence the name livelet. To achieve this we're using SWF which has far more dynamic and responsive communications methods than AJAX which is currently the dominant dynamic technology within the MediaWiki enviornment.

Another extension that has been created to support this development is the Flashlets extension which allows ActionScript source code enclosed within swf tags to be compiled on the fly and embedded as a SWF movie. We've had this capability here on the OrganicDesign wiki for a couple of years now, but Flashlets is very easy to install and works on a normal MediaWiki enviornment of any version.

Another aspect of Organic Design which has recently been made available to the MediaWiki community at large is the WikiSkin extension. This will allow us to integrate HTML/CSS/JS templates created by designers into MediaWiki much more simply, and will also help greatly in the creation of new live skins composed of sets of livelets.