User:Dantman/Skinning system/New skin layout


Current layout[edit]

logo sidebar sidebar [toolbox] search tabs personal_urls jsmessage sitenotice pagetitle subtitle (and undelete) newtalk bodytext catlinks footerlinks footerimages

Proposed layout[edit]

logo the normal logo based on $wgLogo is switched for a system that can handle varying logo region sizes so different logos can be specified for skins with a square logo vs. skins with a short and wide logo.

sidebar is it is disappears and is no longer a required item. Instead we support a variety of navigation types; navigation sidebar (essentially the same behavior as now), a single header navigation list, and a multi-level hover menu. These are the built in supported types, but any skin can add their own types of navigation using the ListMessageBuilder (we may switch these for explicitly defined types of messages in the style of MediaWiki:Sidebar with their format defined in a $wg var to allow for a flexible ui to be created in the future).

toolbox we reduce the level that the toolbox is tied to the sidebar. We eliminate the echo based hooks and convert the toolbox into a proper list of links allowing the skin to format it as it wants, and remove links it doesn't need if it creates links in other locations.

pageicons is added to replace the icons we put in the bodytext in an ugly way and hack into place with css or js on various wiki. The primary icons are grouped into the far end, a special block for non-icon extras added by extensions such as the block flagrevs adds.

pagesubtext is added to replace the subtext such as geographical cords some wiki like Wikipedia use.

subtitle and undelete essentially becomes, instead of two ugly hardcoded subtitles we start defining a list of subtitles defining things like lang and it's level of importance (to allow site css styles hiding subtitles to keep important ones like those on diff pages).

A sitename is also added, to take into account skins that decide to use the blog like style of using a sitename and the tagline in place of a logo.

We introduce a new region system and jsmessage, newtalk, and sitenotice are replaced with a message region and bodytext and catlinks are replaced with a body region. As many regions as the skin wants can be defined; Each region has a name of it's own. Some regions define special properties like 'wide' for the primarily wide content area. Regions are primary, secondary (default), and some may be 'special'. Special regions like the message region don't get region blocks added to them unless they are explicitly added. Most catlinks like blocks meant to be at the bottom of the page (such as the ones that flaggedrevs and smw add) will use 'primary, wide, end' and gravitate to the body region skins should define. Skins and extensions can define rules for preferences of what regions things go into. Potentially site admins or config could as well.