Revision [2470]

This is an old revision of WikkaSkinSelector made by DarTar on 2004-11-26 12:07:40.

 

Wikka Skin Selector

Last edited by DarTar:
Adding link
Fri, 26 Nov 2004 12:07 UTC


A beta version of the skin selector is available for testing TestSkin here.
Check also the WikkaSkinEditor, which extends the WikkaSkinSelector giving Wikka Administrators the possibility to edit skins






This action allows you to select a WikkaSkins skin for HomePage 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 WikkaSkins 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);
?>


3. Modify the Wikka Header (actions/header.php)

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


CategoryDevelopment CategoryLayout
There are 8 comments on this page. [Show comments]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki