Extension:AdvancedSkinSystem

The AdvancedSkinSystem implements a flexible skinning framework for your wiki. It offers the following features:
 * arbitrary number of skins
 * skins can be changed on-the-fly depending on namespace or category of an article.
 * skin templates are completely editable from the wiki-interface (if your user is equipped with sufficient rights).
 * skins can incorporate dynamic wiki-content.
 * skin templates can be modularised to share common parts.
 * ... (to be continued)

Installing
Copy the files into a subfolder of the extensions folder of your MediaWiki installation. Then add the following lines to your LocalSettings.php file (near the top):

You have to create a subdirectory advancedskin in /mediawiki/skins.

To compile the created skins you have to use Special:UptadeSkins.

TODO: document changes to access rights in skins-folder.

Dependency
Please install Extension:ExtensionFunctions.php into $IP/extensions first.

tags
There are 7 tags that can be used.



external
example #!Favicon.ico!#==[[Media:Favicon.ico]] #!Style.css!#==Filler:WebStyle.css

The content of these articles will be stored into the skins/advancedskins folder. so WebStyle.css will be created in skins/advancedskins

internal
example ##HEADER##==Filler:MySkinHeader

The content of these articles will be included during the skin compilation.

dynamic
example #*FOOTER*#==MySkinFooter

The content of these articles will be included on runtime.

skintemplate
example /*have a look at MonoBook or the linked example for some ideas of what to put here*/ 
 * 1) HEADER##

The content of this tag is used for the main part of the skin you create.

skinfiller
example

The content of this tag is used within the skin you create. Using it you can modularize your code.

wikibits
example a bold text using wiki-syntax

The content of this tag is used to include texts using the wiki syntax.

skinflags
example Present_To_User

Using the Present_To_User flag makes the skin available for your users in the general settings. Skins that do not use Present_To_User can only be used when a skin that uses Present_To_User is active. The syntax to be used in this case is category:Skin:MySkin, whereas MySkin is the name of your skin which doesn't use the Present_To_User flag.

mapping a namespace to use an ASS-skin as default
You can create the page  and put something like this into it:

NamespaceName1=Skinname1 NamespaceName2=Skinname2

Namespace1 will then default to skin1 and namespace2 will default to skin2. You can override this for single pages using the category feature, i.e.  

TODO

 * implement log message on skin regeneration
 * simplify installation
 * document

Used at...

 * http://steppe.konvent.ru/
 * http://wiki.piratenpartei.de/