Wikka Skin Selector
Last edited by
DarTar:
Modified links pointing to docs server Mon, 28 Jan 2008 00:11 EST
This action is obsolete and has been replaced by the
MySkin action. Want to test it? Give it a
try
This action allows you to select a
skin∞ for
WikkaWiki, among those present in the
css/ folder.
Note: Your browser must accept cookies in order for the skin selector to work.
Here's the three-step installation:
1. Add your custom skins
Just put all your skins in the
css/ folder of your Wikka installation.
Many skins can be downloaded and shared from the unofficial
WikkaSkinsRepository.
2. Create the skin selector action (actions/selectskin.php)
Save the code below in a new file called
actions/selectskin.php:
Minor update 2004-11-25
<?php
// Wikka Skin Selector
// Displays a form to switch CSS stylesheet
$currentskin =
$this->
GetCookie("wikiskin");
echo $this->
Format("=== Select a Wikka skin: === --- ");
if ($_POST) {
$this->
SetPersistentCookie("wikiskin",
$_POST["skin"]);
$this->
Redirect($this->
href());
}
$handle =
opendir('css/');
print $this->
FormOpen("",
"",
"post");
echo '<select name="skin">';
$noskinmask =
'^(xml.css|print.css|\.(.*))$';
while (false !==
($file =
readdir($handle))) {
if (!
preg_match('/'.
$noskinmask.
'/',
$file)) {
$selected =
($file ==
$currentskin)?
" selected=\"selected\"" :
"";
print '<option value="'.
$file.
'"'.
$selected.
'>'.
$file.
'</option>';
}
}
echo '</select>';
echo '<input type="submit" name="Submit" value="Set new skin" />';
print $this->
FormClose();
closedir($handle);
?>
To allow skin selection a small modification of the header is needed:
original actions/header.php
<link rel="stylesheet" type="text/css" href="css/<?php echo $this->GetConfigValue("stylesheet") ?>" />
modified actions/header.php
<link rel="stylesheet" type="text/css" href="css/<?php echo ($this->GetCookie("wikiskin"))? $this->GetCookie("wikiskin"): $this->GetConfigValue("stylesheet") ?>" />
How to use the skin selector
Just insert
{{selectskin}} in a wikka page and start playing.
--
DarTar
CategoryDevelopmentActions CategoryLayout