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.
There are a few core hacks required to make my template work properly, both for a regular wiki as well as for a help server. Additionally, there is a bug fix required to display table of contents if you utilize the plugin:condition and plugin:toctweak.
Note: you need to verify below modifications after every DokuWiki upgrade.
doku.php and help.php in the template directory instead of main.php (function bethico_dispatch)doku.php in the root directory which then dispatches doku.php in the template directoryhelp.php (copy of doku.php) in the root directory which then dispatches help.php in the template directory/lib/tpl/. Current version is v55.1 / 2024-06-09 suitable for DokuWiki “Kaos”.doku.php in DokuWiki's root after line $ID = getID(); at the beginning…require_once(template('dispatcher.php'));
$langcode = bethico_language();
bethico_init_toc();
act_dispatch(); withinit_lang($langcode); bethico_dispatch(basename(__FILE__));
/lib/scripts/page.js in function makeToggle to allow the template to set the table of contents to open or closed$handle[0].setState = function(state){
var hidden;
--> if(!state && JSINFO.toc) state = JSINFO.toc.initial_state;
if(!state) state = 1;
/inc/template.php in function tpl_toc add before line Event::createAndTrigger('TPL_TOC_RENDER', $toc, null, false);:if (@include_once(template('dispatcher.php'))) bethico_update_toc($toc, $TOC);
This is a non-destructive change which fixes an issue in the table of contents if plugin:condition is installed.
_toc in file lib/plugins/toctweak/helper.php$items = array_unique($items, SORT_REGULAR);
/lib/tpl/bethico/core/v551/, copy them withcp -R /lib/tpl/bethico/core/v551/* /
then check file permissions
/inc/actions.php and change /lib/tpl/bethico/dispatcher.php/inc/template.php and change/doku.php and change then copy to /help.php/lib/scripts/page.js (v55.1-line 170) right before if(!state) state = 1;if(!state && JSINFO.toc) state = JSINFO.toc.initial_state;
data/cache/* folder to save space and avoid corrupt cache issues on the new host.tar -czvf dokuwiki-backup.tgz -C /path/to/dokuwiki .
tar -xzvf dokuwiki-backup.tgz -C /path/to/new/webroot
.htaccess file if you use URL rewriting or custom paths on the new domain.sudo chmod -R 775 /path/to/new/webroot/data /path/to/new/webroot/conf Use code with caution. [1] (https://forum.dokuwiki.org/d/8687-move-to-another-server), [2] (https://forum.dokuwiki.org/d/6797-moving-my-dokuwiki-to-an-external-website)5. Test Your InstallationPoint your browser to your new domain or temporary URL to verify that pages, media files, and plugins load correctly.If old or incompatible plugins break the interface, reinstall or update them via the DokuWiki plugin manager. [1] (https://forum.dokuwiki.org/d/20489-migrating-old-wiki-to-new-wiki-and-server), [2] (https://yyhh.org/blog/2018/10/migrate-dokuwiki-to-another-server/), [3] (https://www.dokuwiki.org/faq:backup)
'https://your.wiki.server/help.php?id={langcode}:{keyref}'
JToolbarHelper::help('view', true);
https://your.wiki.server/help.php?id=en:view
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 | |
$ 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/**\*
plugins/condition/syntax.php if you run your webserver with PHP 8.plugins/html5video/syntax/video.php if you run your webserver with PHP 8./data/meta/davcal.sqlite3 to D:\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