Dokuwiki beheer

Dokuwiki staat op /share/MD0_DATA/qpkg/DokuWiki/web

Todo op meulenwiek

  • Sjabloon aanpassen
    • Plaatjes
    • Kleuren
    • Fonts
    • Hardcopy
  • Editbutton niet weergeven in sidebar
  • News plugin
  • Transfer vanaf /var/www
  • Troeftekens goed regelen

Troubleshooting

Geen plugins installeren:

chown -R httpdusr:everyone plugins
chown -R httpdusr:everyone tpl

Debuggen

Notes on plugin development: http://wiki.splitbrain.org/plugin:tutorial. Perl Compatibkle Regular Expressions: http://www.pcre.org.

PHP debugging with DBG and https://addons.mozilla.org/nl/firefox/addon/3227.

Notes on javasript in plugins: http://wiki.splitbrain.org/wiki:devel:javascript. For debugging, first turn CSS en javascript compression off in your DokuWiki config. Then debug path/to/wiki/lib/exe/js.php. I use the Firefox javascript debugger plugin. User manual: http://devedge-temp.mozilla.org/viewsource/2002/venkman/01/index_en.html.

Debugging php on debian: http://2bits.com/articles/setting-up-xdebug-dbgp-for-php-on-debian-ubuntu.html. Er schijnt ook een Eclipse plugin te zijn (PHPClipse). Een artikel daarover: http://www-128.ibm.com/developerworks/library/os-debug/index.html

Latex plugin aanpassen. Pas /usr/share/dokuwiki/lib/lpugins/latex/class.latexrender.php aan.

Serverside

De volgende pakketten moeten ginstalleerd zijn op samwise.

  • apache2
  • php5
  • php5-gd (als je plaatjes wilt bewereken)
  • mysql-server
  • php5-mysql

Deze pakketten waren allen al geïnstalleerd.

Vervolgens de ontwikkelpakketten van php, apache en PEAR.

  • apache2-dev
  • php5-dev
  • php-pear
  • make

Aangezien php-pear en make al geïnstalleerd waren, resteerde alleen:

apt-get install apache2-dev php5-dev

En vervolgens

pecl install xdebug

Dat duurde even. Tenslotte de php configuratie in /etc/php5/apache2/php.ini. Net voor de [Date] sectie.

extension=xdebug.so
 
[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=boromir
xdebug.remote_port=9000

; General
xdebug.auto_trace=off
xdebug.collect_includes=on
xdebug.collect_params=off
xdebug.collect_return=off
xdebug.default_enable=on
xdebug.extended_info=1
xdebug.manual_url=http://www.php.net
xdebug.show_local_vars=0
xdebug.show_mem_delta=0
xdebug.max_nesting_level=100
;xdebug.idekey=

; Trace options
xdebug.trace_format=0
xdebug.trace_output_dir=/tmp
xdebug.trace_options=0
xdebug.trace_output_name=crc32

; Profiling
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=crc32

Nu kun je php debuggen met DBGp compatible applicaties, waaronder een firefox plugin.

Clientside

Er is een gratis PH debugger te vinden op http://dd.cron.ru/dbg/downloads.php. Installer eerst de listenner, en vervolgens de IDE. Er schijnt een Eclipse project te zijn

Huidige installatie

Dokuwiki versie

no info about version

Plugins

Syntax plugins

Syntax modes

plugin_definitionlist10
listblock
preformatted20
notoc30
nocache40
plugin_include_locallink50
plugin_include_closelastsecedit
plugin_include_editbtn
plugin_include_readmore
plugin_include_wrap
header
plugin_include_header
plugin_exttab359
table60
plugin_columns65
strong70
emphasis80
underline90
plugin_blog_draft99
monospace100
subscript110
superscript120
plugin_trumpsuits123
deleted130
plugin_indexmenu_indexmenu138
plugin_indexmenu_tag139
plugin_include_sorttag
linebreak140
footnote150
plugin_info155
plugin_amazon160
hr
plugin_anchor167
plugin_pagelist168
unformatted170
php180
html190
plugin_note195
plugin_box
plugin_codeprettify_code199
plugin_addnewpage
code200
plugin_graphviz
file210
quote220
smiley230
acronym240
entity260
multiplyentity270
quotes280
plugin_tag_searchtags295
plugin_tag_topic
plugin_include_footer300
internallink
plugin_include_include303
plugin_tag_count305
plugin_tag_tagpage
plugin_tag_tag
plugin_blog_blog307
plugin_blog_archive309
plugin_blog_autoarchive
rss310
media320
externallink330
emaillink340
windowssharelink350
eol370

Syntax types

syntax types

containerlistblock, table, quote, hr, plugin_definitionlist, plugin_exttab3, plugin_note
baseonlyheader
formattingstrong, emphasis, underline, monospace, subscript, superscript, deleted, footnote, plugin_include_closelastsecedit, plugin_include_editbtn, plugin_include_footer, plugin_include_header, plugin_include_locallink, plugin_include_readmore, plugin_include_wrap
substitionacronym, smiley, wordblock, entity, camelcaselink, internallink, media, externallink, linebreak, emaillink, windowssharelink, filelink, notoc, nocache, multiplyentity, quotes, rss, plugin_addnewpage, plugin_amazon, plugin_anchor, plugin_blog_archive, plugin_blog_autoarchive, plugin_blog_blog, plugin_blog_draft, plugin_columns, plugin_graphviz, plugin_include_include, plugin_include_sorttag, plugin_indexmenu_indexmenu, plugin_indexmenu_tag, plugin_info, plugin_pagelist, plugin_tag_count, plugin_tag_searchtags, plugin_tag_tag, plugin_tag_tagpage, plugin_tag_topic, plugin_trumpsuits
protectedpreformatted, code, file, php, html, htmlblock, phpblock, plugin_box, plugin_codeprettify_code
disabledunformatted
paragraphseol

Updates

Het QNAP pakket overschrijft alle configuratie bestanden bij een update. Eerst veiligstellen dus.

Er lijkt ook iets mis te gaan met de rechten. Misschien help dit:

cd /share/MD0_DATA/.qpkg/DokuWiki/web
#chown httpdusr /opt/share/www/dokuwiki/changes.log
chown -R httpdusr:everyone data
chown -R httpdusr:everyone lib/plugins
chown -R httpdusr:everyone conf

Instellingen/configuratie/tweaken

Interessante plugins vermelden. Troeftekens instellen: Troef tekens in Dokuwiki.

LDAP gebruiken voor authenticatie

LDAP authenticatie redelijk probleemloos. Protocol moet op 3!

Sinds de QNAP update van oktober 2017 staat anonymous bind dicht op Elanor, behalve om een wachtwoord te verifieren. Dit lijkt een probleem van dokuwiki. Opgelost door een gebruiker dokuwiki aan te maken in de LDAP database.

Tekst configuratie bestanden editen in de wiki zelf

cd /share/MD0_DATA/.qpkg/DokuWiki/web/data/pages/wiki
ln -s /etc/dokuwiki/acronyms.local.conf acroniemen.txt
ln -s /etc/dokuwiki/interwiki.conf interwiki.txt
ln -s /etc/dokuwiki/entities.local.conf entities.txt
ln -s /etc/dokuwiki/smileys.conf smileys.txt
ln -s /etc/dokuwiki/mime.conf mime.txt
ln -s /usr/share/dokuwiki/lib/tpl/arctic/style.ini arctic-style.txt

Zorg dat user www-data de betreffende bestanden kan wijzigen.

Je kunt het geheel leesbaar houden door bovenaan en de volgende regels op te nemen, like so:

# <code>
....
.....
(configuratie)
...
...
# 

</code>

Smileys

Lijken te worden overschreven bij updates van dokuwiki.

(TEL)     icon_phone.png
(MAIL)    icon_mail.png
(EMAIL)   icon_email.png
(WWW)     icon_www.png

Nette URL's

Nette URL's worden moeglijk gemaakt door de rewrite engine van Apache. Standaard wordt dat geregeld in /usr/share/dokuwiki/.htaccess. Die komt er, na het ongedaan maken van wat wegcomments, zo uit te zien:

## Enable this to restrict editing to logged in users only
 
## You should disable Indexes and MultiViews either here or in the
## global config. Symlinks maybe needed for URL rewriting.
#Options -Indexes -MultiViews +FollowSymLinks
 
## make sure nobody gets the htaccess files
<Files ~ "^[\._]ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
 
## Uncomment these rules if you want to have nice URLs using
## $conf['rewrite'] = 1 - not needed for rewrite mode 2
RewriteEngine on
#
## Not all installations will require the following line.  If you do,
## change "/dokuwiki" to the path to your dokuwiki directory relative
## to your document root.
RewriteBase /wiki
#
RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
RewriteRule ^$                        doku.php  [L]
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
RewriteRule ^index.php$               doku.php

Probleem met deze benadering is dat .htaccess na iedere update van dokuwiki overschrevcen wordt (dit is een fout in het debian pakket). De rewrite rules staan nu in /etc/apche2/conf.d/dokuwiki.conf like so:

Alias /wiki             /usr/share/dokuwiki
<Directory /usr/share/dokuwiki/>
        Options +FollowSymLinks
        AllowOverride All
        order allow,deny
        allow from all
 
        RewriteEngine on
        RewriteBase /wiki
 
        RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
        RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
        RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
        RewriteRule ^$                        doku.php  [L]
        RewriteCond %{REQUEST_FILENAME}       !-f
        RewriteCond %{REQUEST_FILENAME}       !-d
        RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
        RewriteRule ^index.php$               doku.php
</Directory>

Layout en style

De “gebruiksaanwijzing” van de arctic template staat op http://www.chimeric.de/projects/dokuwiki/template/arctic. Op http://wiki.splitbrain.org/wiki:devel:css is te vinden hoe dukuwiki met css omgaat. op /wiki/lib/exe/css.php kun je zien wat op deze site gebruikt wordt. Eventueel met de configuration manager “compact javascript/css” uit zetten.

De marges, inspringing, kopjes en uitvulling van dokuwiki en de acrtic template zijn niet naar mijn smaak. De marges worden aangepast in style.ini:

__wiki_width__     = "100%"
__footer_padding__ = "0.5em"

De rest wordt aangepast in /etc/dokuwiki/userscript.css. Deze is in de wiki zelf te editen via userstyle.css.

/* Place customisations to screen mode style sheet here */
 
/* Do not indent according to level */
div.dokuwiki h2,
div.dokuwiki h3,
div.dokuwiki h4,
div.dokuwiki h5,
div.dokuwiki div.level1,
div.dokuwiki div.level2,
div.dokuwiki div.level3,
div.dokuwiki div.level4,
div.dokuwiki div.level5 {margin-left: 0px;}
 
/* Use my heading styles */
div.dokuwiki h1 {font-size: 160%; font-weight: bold;}
div.dokuwiki h2 {font-size: 140%; font-weight: normal; }
div.dokuwiki h3 {font-size: 110%; font-weight: bold;}
div.dokuwiki h4 {font-size: 100%; font-weight: bold;}
div.dokuwiki h5 {font-size: 100%; font-style: italic;}
 
/* Do not fullty justify text */
div.dokuwiki div.left_page,
div.dokuwiki div.right_page,
div.dokuwiki div.center_page,
div.dokuwiki div.page {text-align: left;}

DokuTexit moeilijkheden

DokuTexit heefte erg veel moeite met tabellen. Hij houdt niet van meerdere regels per cel m(via \\) in DokuWiki. Verder geeft hij foutmeldingen bij samengevoegde cellen. Het zou een idee kunnen zijn tabulary te gebruiken…

  function tabularxcell_open($colspan = 1, $align = NULL){
    if ($this->_current_tab_cols)
      $this->put("&");
    if ($colspan > 1) {
      $this->_current_tab_colspan = 1;
      $this->putcmd("multicolumn{". $colspan . "}");
      $this->put("{");
      if ($this->_current_tab_cols == 0)
        $this->put("|");
      switch ($align) {
      case "right" :
        $this->put("r");
        break;
      case "left" :
        $this->put("l");
        break;
      case "center" :
        $this->put("c");
        break;
      default:
        $this->put("l");
      }
      $this->put("|}");
      $this->put("{");
    } else {
      $this->put("{\parbox{4cm}{");
    }
    $this->_current_tab_cols++;
  }
 
  function tabularxcell_close(){
    if ($this->_current_tab_colspan = 1) {
      $this->_current_tab_colspan = 0;
      $this->put("}}");
    }
  }

Ongewenst downloadvenster openen bij exe en pdf

joe /usr/share/dokuwiki/lib/exe/fetch.php

Wegcommenten:

  //application mime type is downloadable
//  if(substr($mime,0,11) == 'application'){
//    header('Content-Disposition: attachment; filename="'.basename($file).'";');
//  }

Aangepast thema voor mobieltjes

  1. Download Mobile_Detect.php van https://github.com/serbanghita/Mobile-Detect
  2. Sla op in /share/MD0_DATA/.qpkg/Dokuwiki/dokuwiki/conf
  3. Voeg aan local.php het volgende toe na $conf['template']=”:
    include("Mobile_Detect.php");
    $mdetect = new Mobile_Detect();
    if ($mdetect->isMobile()) {$conf['template']='m1';}
/share/Web/dokuwiki/data/pages/beheer/dokuwiki.txt · Laatst gewijzigd: 2017/10/06 02:37 door pieter
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5