====== Using DokuWiki as a lightweight CMS ====== Wikis were **originally** intended as a way to work collaboratively in a very open environment. This is no different with DokuWiki. However DokuWiki provides certain features that make using it as a more conventional Content Management System possible. This page gives you a quick overview what you might want to do for configuring DokuWiki as a CMS. Some steps are somewhat similar to when using DokuWiki as a [[tips:blogging|blogging tool]], so reading that page is recommended. //WORK IN PROGRESS// ===== Customise ===== ==== Locking up DokuWiki ==== The main difference between a Wiki and a conventional CMS is who is allowed to edit. For a CMS you want to restrict editing to a very small group or even a single user. This can be easily achieved with DokuWiki's [[:ACL]] feature. You will need to assign ''read'' permissions to the ''@ALL'' group on ''*'' namespace. The group of editors should get more permissions on that namespace of course. ==== Disabling Wiki-Functions ==== Many DokuWiki features are less useful or even unwanted for a CMS setup scenario. DokuWiki, allows you to disable certain function using the [[config:disableactions]] option. For a CMS setup you probably want to disable ''register'', ''backlinks'', ''index'', ''recent'', ''revisions'', ''subscribe'', ''subscribens'' and ''source''. ==== Enable URL Rewriting ==== You should enable some sort of [[:rewrite|URL Rewriting]] so users don't see the ''../doku.php?..'' ==== Template ==== Your template should hide all edit buttons and other Wiki related features from unauthorized users. You can do this by checking the ''$_SERVER['REMOTE_USER']'' variable. Specially the templates [[template:dokucms]] (inclusive examples) and [[template:mcz]] are used for 'normal' websites. ==== Adding an always visible navigation ==== The classic sidebar for menus, search- or contactforms is easy using a sidebar plugin like [[plugin:sidebar|sidebar]] or [[plugin:sidebarng|sidebarng]]. ==== Editing Messages ==== Certain messages generated by DokuWiki might not be sensible in a CMS context. This is most certainly true for the message you get when a page does not exist, which suggests to create the page. You should check the message files in ''inc/lang//*.txt'' and then create your own version of these files in ''conf/lang//*.txt''. Older DokuWiki version may require that you directly edit ''inc/lang//*.txt''. In this case, be sure to backup these changes as they will be overwritten by the next [[install:upgrade]]. Enabling the [[config:send404]] option is another good idea in this case. ==== Using plugins ==== Some plugin suggestions to get started: * [[plugin:addnewpage|addnewpage]] * [[plugin:blog|blog]] * [[plugin:box|box]] * [[plugin:bureaucracy|bureaucracy]] * [[plugin:captcha|captcha]] * [[plugin:cloud|cloud]] * [[plugin:code|code]] * [[plugin:color|color]] * [[plugin:columns|columns]] * [[plugin:comment|comment]] * [[plugin:discussion|discussion]] * [[plugin:displaywikipage|displaywikipage]] * [[plugin:doodle|doodle]] * [[plugin:dw2pdf|dw2pdf]] * [[plugin:editor|editor]] * [[plugin:feed|feed]] * [[plugin:folded|folded]] * [[plugin:gallery|gallery]] * [[plugin:include|include]] * [[plugin:indexmenu|indexmenu]] * [[plugin:newpage|newpage]] * [[plugin:note|note]] * [[plugin:odt|odt]] * [[plugin:orphanswanted|orphanswanted]] * [[plugin:pagemove|pagemove]] * [[plugin:searchindex|searchindex]] * [[plugin:siteexport|siteexport]] * [[plugin:tag|tag]] * [[plugin:translation|translation]] * [[plugin:uparrow|uparrow]] * [[plugin:vshare|vshare]] * [[plugin:wrap|wrap]] * [[plugin:ckgedit|CKGEdit]] ===== Design ===== Often people shrink back if you talk about a wiki for CMS use. They mostly think of a 'wikistyled' wiki with the Wikipedia- or Dokuwiki-style with all the buttons and menus. But you can customize dokuwiki as easy as any other CMS, but retain all they wiki-functionality like easy document orientated editing, versioncontrol, transclusions and no use for a database. Some examples: * [[http://ageulen.de|AG Eulen]] * [[http://www.inetsoftware.de|www.inetsoftware.de]] * [[http://www.rabemann.de/galerie/stuttgart/kuenstler/start|www.rabemann.de]] * [[http://inicon.com|inicon.com]]