RobinW
I'm running Wikka at WickIT, a dutch IT-wiki. I live in Belgium and I fluently speak Dutch and English, pretty good French and a bit of German.
My experiences with Wikka
Like a lot of users I first tried MediaWiki. I found it was too hard to hack the code and to integrate a forum with it. "Nontroppo" told me he used Wikka for his Opera wiki, which seemed very customizable. So, here I am. :)
Possible improvements
This is what I felt when I was customizing wikka for my site. The PHP-code is very nice written, very easy to understand. The only difficulties I ran into where the regular expressions, but that's not my specialty either.
I think the biggest improvement could be the default lay-out, the HTML and the CSS. The code is pretty OK and mostly valid HTML, but I ran into some weird stuff:
- Spaces used for positioning elements.
- Tables for lay-outing.
- The "::" and "[]"-thingies. It seems to me that a lot of wiki's do this, I don't know why, but I think it makes everything look a bit messy. It's better if you use lists (<ul>) for menu's and style them with CSS.
I also felt that the wiki-specific stuff is a bit hidden at the bottom of the page, so I put up a HUGE "Edit" button in the right corner of mine. :) Also the search box should be more of an eye-catcher.
100% safe e-mail adresses
I wrote a simple action which converts text to a (non clickable) image. The width of the image gets adjusted to its content and a TrueType-font can be used. You can find the script at http://www.wickit.be/wiki/VeiligeEmailadressenMetPHP#afbeelding. (Dont't mind the Dutch text, if you know PHP, it pretty much explains itself.)
Acronyms
I also wrote an <acronym>-convertor. I couldn't find a working example on this site that uses a wikipage to add new acronyms. I did the same with my InterWiki list.
I basicly did something like this in wikka.php:
$acroPage = $this->LoadPage('WikiAcronyms');
$this->acronyms = array();
$line = 0;
$pagelines = explode ("\n", $acroPage["body"]);
for ($i = 0; $i < count ($pagelines); $i++) {
if (preg_match ("/[ ~]*-(.*)/",$pagelines[$i],$matches)) {
if (!strstr($matches[1],'---'))
$temp = explode(' = ',str_replace(' - ','',$matches[1]));
if (!empty($temp[0]))
$this->acronyms[trim($temp[0])] = str_replace('""','',$temp[1]);
}
}
$this->acronyms = array();
$line = 0;
$pagelines = explode ("\n", $acroPage["body"]);
for ($i = 0; $i < count ($pagelines); $i++) {
if (preg_match ("/[ ~]*-(.*)/",$pagelines[$i],$matches)) {
if (!strstr($matches[1],'---'))
$temp = explode(' = ',str_replace(' - ','',$matches[1]));
if (!empty($temp[0]))
$this->acronyms[trim($temp[0])] = str_replace('""','',$temp[1]);
}
}
This loads all the acronyms from a page which has all the acronyms in a list (with four spaces and a dash before them) and ignores all lines containing three dashes (a forced line-break).
Then I adjusted the Wakka formatter to match ??acronyms?? and to load them from the array.
CategoryUsers