Using the Oddmuse wiki engine as a CMS

[The following information could be a bit outdated; but it should not get lost…]

To me the Oddmuse wiki is one of the best wiki engines out there: Simple perl script, no database, easy administration, lots of functionality by adding modules et cetera.

I use it quite a lot when it comes to organizing my professional and personal life.

One of my upcoming projects needed a small website; I wanted something, where one (admin) could edit the current content, bring up new pages, search possibility for users and I needed a RSS feed… Sounds like a CMS-Deal. But: I did not want a full-blown CMS; And I didn’t want to use a database for that thing!

The question was, can I modify the Oddmuse installation in a way, a CMS generated site would look like (hidden admin interface, no wiki feeling).

As I have a working Oddmuse installation und you could add more than one wiki to a installation by setting up wrapper scripts I tried to accomplish this task with my Oddmuse installation.

I did the following steps to get a Oddmuse CMS:-)

#1 appropriate config
relevant extractions from the config-file

# wrapper-script defining a $DataDir and calling "current"
$FullUrl = '';
# rewriten url (.htaccess)
$ScriptName = '';
# initial page loaded
$HomePage = 'Custom_Homepage';
# List of pagenames
@UserGotoBarPages = ('Home', 'More', 'Pages', 'In', 'Headermenu');
$UserGotoBar = 'RSS';
#1 = Link to the W3C HTML validator service
$ValidatorLink = 0;

#2 setup the admin interface
Just setup a hidden page with Editlinks to all your “frequently” updated pages like:

== Edit ==

#3 You want to hide typical wiki-stuff via CSS
grep -i “display: none” com.example.css

span.edit { display: none; }
span.time { display: none; }
div.footer span.gotobar { display: none; }

To add a new page, add the name to the UserGotoBarPages, create an edit-link in the HiddenSecretPage and start with the content. Simple.

With these configurations the wiki leans down to a very simple and plain website(-cms):

BTW: There is a module extension also; I did not try it – look at the: PlainSite_Module