====== DokuWiki Server ====== This guide is for installation instructions of a DokuWiki private site, or a DokuWiki help server for a Joomla 3.9 website installation and help pages served by DokuWiki. This is specific for my personal needs, but might help you in setting up a highly customized dokuwiki server instance. ===== Installation ===== - Go to [[https://download.dokuwiki.org/|Download DokuWiki]] and configure your download to include: * Version: stable * Languages: en, de, fr, ko, th * Popular Plugins: CAPTCHA, Upgrade, Wrap, Translation. * For a general purpose server, add Popular Plugins: Video Share, Gallery. - Unzip the download to your web server directory, then run /path/to/wiki/install.php - Install bethico template for DokuWiki - Install the [[https://www.dokuwiki.org/plugin:icons|Icons Plugin]] for FontAwesome icons - Install the [[https://www.dokuwiki.org/plugin:condition|condition Plugin]] - Install the [[https://www.dokuwiki.org/plugin:include|Include Plugin]] - Install the [[https://www.dokuwiki.org/plugin:date|date Plugin]] - Install the [[https://www.dokuwiki.org/plugin:toctweak|TocTweak Plugin]] ==== General Purpose Server ==== - Install [[https://www.dokuwiki.org/plugin:sqlite|sqlite Plugin]] (required for Calendar Plugin) - Install [[https://www.dokuwiki.org/plugin:davcal|davcal Plugin]] (Calendar Plugin with CalDAV sharing support) - Install [[https://www.dokuwiki.org/plugin:comment|Comment Plugin]] - Install [[https://www.dokuwiki.org/plugin:discussion|Discussion Plugin]] - Install [[https://www.dokuwiki.org/plugin:google_maps|Google Maps Plugin]] - Install [[https://www.dokuwiki.org/plugin:whoisonline|whoisonline Plugin]] - FIXME hover css and icon links to websites FIXME - [[https://www.dokuwiki.org/plugin:google_maps|Google Maps Plugin]] -> **grep -r " tags, disable html - [[https://www.dokuwiki.org/plugin:color|color Plugin]] -> **grep -r "**Note: you need to verify below modifications after every DokuWiki upgrade.** - Install my {{ :dokuwiki:tpl_bethico.zip |Bethico Template}} into ''/lib/tpl/''. Current version is 2022-10-09 suitable for DokuWiki "Igor". - Add the following lines in ''doku.php'' in DokuWiki's root after line ''$ID = getID();'' at the beginning...require_once(template('dispatcher.php')); $langcode = bethico_language(); - ...and replace at the end line ''act_dispatch();'' withinit_lang($langcode); bethico_dispatch(basename(__FILE__)); - Copy ''doku.php'' to ''help.php'' in the DokuWiki root folder - Modify ''/inc/template.php'' and add before line ''Event::createAndTrigger('TPL_TOC_RENDER', $toc, null, false);'' in function ''tpl_toc''. This is a non-destructive change which fixes an issue in the table of contents if plugin ''condition'' is installed in the wikiif (@include_once(template('dispatcher.php'))) bethico_update_toc($toc, $TOC); - Copies of the modified files for "Igor" are in folder ''/lib/tpl/bethico/core/'', copy them withcp -R /lib/tpl/bethico/core/* / - After a DokuWiki upgrade check and change if necessary - Check ''/inc/actions.php'' and change ''/lib/tpl/bethico/dispatcher.php'' - Check ''/inc/template.php'' and change - Check ''/doku.php'' and change then copy to ''/help.php'' - Optional: replace favicon and logo in '/lib/tpl/bethico/images/'. ===== Joomla Access ===== * Set the Help URL in the component configuration of com_bethico to'https://your.wiki.server/help.php?id={langcode}:{keyref}' * Add a help button to view 'view' to open the help pageJToolbarHelper::help('view', true); * With English as the active language it will invokehttps://your.wiki.server/help.php?id=en:view ==== Help system ==== Joomla's default help url:url example: https://help.joomla.org/proxy?keyref=Help{major}{minor}:{keyref}&lang={langcode} Substitute tags: ^ Tag ^ Name ^ Example ^ | {app} | Application name | 'Administrator' | | {component} | Component name | 'com_content' | | {keyref} | Help screen key reference | JToolbarHelper::help('{keyref}', true) | | {language} | Full language code | 'en-GB' | | {langcode} | Short language code | 'en' | | {langregion} | Region code | 'GB' | | {major} | Joomla major version number || | {minor} | Joomla minor version number || | {maintenance} | Joomla maintenance version number || ===== Backup with zip ===== * use the following command to backup an entire wiki with zip$ sudo zip -r my_wiki my_wiki -x my_wiki/data/cache/**\* my_wiki my_wiki -x my_wiki/data/log/error/**\* my_wiki my_wiki -x my_wiki/data/log/deprecated/**\* ===== Upgrade to Version 2020-07-29 "Hogfather" ===== ==== Plugin whoisonline ==== - Replace function handle($match, $state, $pos, &$handler) definition with function handle($match, $state, $pos, Doku_Handler $handler) in file lib/plugins/whoisonline/syntax.php - Replace function render($mode, &$renderer, $data) definition with function render($mode, Doku_Renderer $renderer, $data) in file lib/plugins/whoisonline/syntax.php - Set $conf['defer_js']=0; in file conf/dokuwiki.php ===== Todo: change menu system ===== * New menu system see /inc/Menu * [[https://www.dokuwiki.org/devel:menus|Menus]] * [[https://www.patreon.com/posts/menus-14160215|Menus! blog]] * [[https://materialdesignicons.com/|Material Design Icons]] ===== Links ===== * [[https://www.dokuwiki.org/namespaces|Namespaces (and how to rename them]] * [[help2server|DokuWiki Help Server with 2 templates]] * [[https://www.dokuwiki.org/tips:safely_include_php_code|Safely include PHP code]] * [[https://www.splitbrain.org/personal|Andreas Gohr]] * [[https://www.plothost.com/kb/update-dokuwiki-command-line/|How to update DokuWiki from the command line]] ===== PHP 8.1 issues ===== ==== Plugin condition ==== * Replace curly brackets string indices with square brackets in line 84 and 149 of ''plugins/condition/syntax.php'' if you run your webserver with PHP 8. ==== Plugin html5video ==== * Put brackets enclosing the expressions on line 190 and 191 of ''plugins/html5video/syntax/video.php'' if you run your webserver with PHP 8. ===== davcal ===== ==== Check when a date entry was made ==== - Copy ''/data/meta/davcal.sqlite3'' to D:\ - Open ''sqlite3.exe'' command line tool from D:\PortableCustom\sqlite3, then enter the following commands to see entries made after 2023-01-01:.open /davcal.sqlite3 SELECT calendardata FROM calendarobjects WHERE datetime(lastoccurence, 'unixepoch') > '2023-01-01 00:00:00'; .quit