Wiki source for ShadowPages

Show raw source

=====Shadow Pages=====
I called this ShadowPages in lack of a better term. The principle behind this is some kind of 'set' of wiki pages which get displayed instead of the default. The most interesting use of this might be for translations, where each language gets its own 'Shadow' of wiki pages. Also it might be useful for personal annotations to different pages, without having each one published for everyone -- thus, Shadow Pages can have ACLs differing from their true pages.

I think, there might even be other uses for such a feature. In case, there is no page for the current 'shadow' it defaults to the normal Wiki page. Optionally, a notice can be displayed stating, that for the current Shadow there is no page, and asking to create one.

Technically, I'd suppose that Shadow Pages are stored in the data base with a prefix the user creating this shadow has chosen. So, the page ##MyMemo:ShadowPages## would be the shadow ##""MyMemo""## of the page ##ShadowPages##. As this might collide with InterWiki links, the colon seems to be no appropriate choice. As it is some kind of SubPages concept, it might collide with the general idea of Wikka of not having this feature.

There are, of course, some problems with this kind of concept. What shall happen to Shadow Pages if their parent page has been deleted? How to switch between different Shadow Pages? And, it might happen that single ShadowPages used for translation fork from the default page in ways not desired.

I'd greatly like to hear some opinions in this matter before thinking too much about its realization ...

====Comparison to SubPages====
Ignoring my statement from above of not thinking further about this issue, I compared the idea of ShadowPages with SubPages. Basically, ShadowPages assume that for every single Wiki page there's a Shadow of the existing Shadow flavours. Thus, linking from a Shadow Page to a Wiki page defaults in a link to the corresponding Shadow of this Wiki Page. If this Shadow Page doesn't exist, the Wiki engine might behave differently:
~1) It checks for a default Shadow the user might have configured in her settings. This is useful for multi-language Wikis, e.g. a documentation Wiki in several languages. If the default language is english but the user has configured to have the german language Shadow displayed as default, the corresponding Wiki page displays its german Shadow if the selected page Shadow doesn't exist (e.g. personal annotations for the page).
~1) If the user's configured favourite Shadow doesn't exist, the Wiki engine outputs the normal page.
In each case the Wiki offers a link to create the requested shadow page, preferrably at the top of the displayed page.

SubPages on the other hand create a new context of Wiki pages, in which all SubPages are unique to the parent page. With SubPages users can create pages only existant for their parent page independently of all other pages in the Wiki. SubPages allow a hierarchic organization of pages while ShadowPages allow creation of additional Wiki layers.

Directly linking to ShadowPages would look just like linking to SubPages, though. Both need a separator to distinguish between parent page in case of SubPages and Shadow name in case of ShadowPages. To link to the normal page, I'd suppose using the Wiki's name or the word 'default' as the default Shadow name, e.g. ##""Wikka[separator]HomePage""## would be the default HomePage and ##""WikkaDE[separator]HomePage""## the ""WikkaDE"" Shadow of the HomePage containing the german translation.

In common is that both concepts only create pages actually existing, as there shouldn't be any limitation having a page tag named ##""WikkaDE/HomePage""## (if '/' is used as a separator).

====How to create Shadows?====
The creation of Shadows could be as simple as creating a category: Create a page that is of the category "Category Shadow" (without the space) or any other page which has the ""{{shadow}}"" action inside. The page itself can contain some configuration options like customized ACLs which the pages of this Shadow default to. Even another default skin might be possible, if there was the possibility to change some configurations pagewise. This idea opens another use: Having a Shadow called ##Accessibility## with a high contrast, large font size stylesheet configured might be useful for the color-blind or short-sighted people, if such configurations might be applied even if no page of this Shadow is found -- but I guess this is some kind of feature solved otherwise (mh, ConfigPages? Might be worth a second thought, though ... as an alternative to the WikkaSkinSelector or the MySkin action, perhaps).
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki