====== Dokuwiki Tips ==
===== Updating Dokuwiki ==
Consider the [[https://www.dokuwiki.org/install:upgrade|recommended]] approach which overwrites the old installation instead of the manual here!
This manual presumes that you saved a copy of the //original// config files with the extension ''.sborg'' //before// you made any changes!
- Download and extract newest Dokuwiki version on the server. Use Stable (direct link, not customized) from http://download.dokuwiki.org
- Locate all files with the extension ''.dist'' (eg ''conf/local.php.dist'') in the new dokuwiki installation and copy their counterparts without the ''.dist'' extension (eg ''conf/local.php'') to the new dokuwiki installation.\\ Note that it might be necessary to treat ''.htaccess'' manually!
- Copy additional Interwiki Shortcut images to ''lib/images/interwiki''
- Copy additional smiley images to ''lib/images/smileys''
- ''chmod a-rwx install.php''. Do not run it!
- Set owner and group of ''newDokuwiki/'' recursively to ''root:root''
- Set owner and group of ''newDokuwiki/conf'', ''newDokuwiki/data'' and ''newDokuwiki/lib'' recursively to the ID of your webserver eg. ''apache:apache''. [[doku>install:permissions|Optionally finetune permissinons]]
- delete unnecessary language translations with ''bin/striplangs.php''
- Download and install fresh revisions of previously installed additional plugins from the web
- Make a list of all files with the extension ''.sborg'' (eg. ''old/conf/acronyms.conf.sborg'') in the //old// dokuwiki installation. Then go to the //new// dokuwiki installation and copy the corresponding original files to .sborg (eg. ''cp new/conf/acronyms.conf new/conf/acronyms.conf.sborg'')
- In the //new// dokuwiki installation [[diffupgrade|patch]] with the modifications: ''merge old/.sborg old/''. Do this for all files on the list where the old changes are still really necessary for the new wiki version.
- copy data:
cp -a oldDokuwiki/data/attic/* newDokuwiki/data/attic
cp -a oldDokuwiki/data/pages/* newDokuwiki/data/pages
cp -a oldDokuwiki/data/media/* newDokuwiki/data/media
cp -a oldDokuwiki/data/meta/* newDokuwiki/data/meta
- Restore the content of the namespaces ''wiki'' and ''playground'' from the newDokuwiki
- Update index with ''bin/indexer.php''. See [[doku>cli#indexerphp]]
Note: After update to 2014-09-29d "Hrun" the toolbar icons were missing in the edit page. Try:
- [[doku>faq:toolbar]]
- Admin -> Configuration Settings -> cssdatauri from 0 to 500.
See also [[diffupgrade]] & http://www.dokuwiki.org/install:diffupgrade
===== Add an Interwiki Shortcut ==
- Add URL in ''dokuwiki/conf/interwiki.conf''
- Add the interwiki icon at ''dokuwiki/lib/images/interwiki''. Possible formats: .gif and .png, but not .ico (Tested with version 2007-06-26b)
- Delete the cache: ''rm -rf dokuwiki/data/cache/*''
- Reload the page in browser
See also http://www.dokuwiki.org/interwiki
===== Enable Linebreaks ==
Install [[doku>plugin:xbr]] plugin and set ''renderer_xhtml'' to ''xbr'' in Configuration Settings
===== URL Rewriting ==
Uncomment
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
in ''/etc/apache/httpd.conf''
Make sure that .htaccess file is respected with
AllowOverride All
or
AllowOverride All
in ''/etc/apache/httpd.conf''
Uncomment everything beginning with ''#Rewrite...'' in ''/var/www/htdocs/dokuwiki/.htaccess'', but **not** the line ''#RewriteBase /dokuwiki''.
Enable rewriting in admin config menu by setting it to type 1
See also: [[doku>wiki:rewrite]]
===== How the Search Index works ==
This section is just informative for interested people. Indexing works automatically, no configuration has to be done.
The search index is saved in ''dokuwiki/data/index/''.
* The file ''page.idx'' lists the filenames of all indexed files. One file per line.
* w.idx lists all occurring words with a length of . One word per line. Eg. ''w14.idx'' lists all words with a length of 14 caracters.
* i.idx lists how often all words of characters occur in which pages. Pages are addressed by their line number in ''page.idx'', counting starts with 0. One word per line. The line number of the entrys in i.idx corresponds to the line number in w.idx, i.e. the entry in line 9 in i.idx refers to the word in line 9 in w.idx.
* ''pageword.idx'' lists where to find all occurring words of the wiki in the w.idx files for every page. One page per line. The line number corresponds to the line number in ''page.idx''. FIXME What is this file used for?
Example:
* ''w14.idx'' contains the word ''developerworks'' in line 9
* ''i14.idx'' contains the line ''2*1:5*2:9*1'' in line 9. This means the page #2 has 1 occurrence of the word ''developerworks'', page #5 has 2 and page #9 hast 1.
* ''page.idx'' contains the word ''pending'' in line 5, this is the filename of page #5. Hence the page with the filename ''pending'' has 2 occurrences of the word ''developerworks''.
===== Attic ==
==== Updating Dokuwiki with git ==
This is still experimental!
[[doku>devel:git#maintaining_a_stable_version_with_git|Info source]]
Download repository with:
git clone git://github.com/splitbrain/dokuwiki.git # or behind a firewall:
git clone http://github.com/splitbrain/dokuwiki.git
Look for the stable branch in the remote repo which you will use as base:
git branch -r
And copy it into a local branch:
git checkout -b stable origin/stable
Create a private branch for your modifications:
git checkout -b mysettings stable
(make your changes)
git commit -a -m '...'
Now you can pull all needed updates whenever a new release comes out:
git checkout stable
git pull
git checkout mysettings
git merge stable
See also [[git#branches]]
You could also directly work on branch ''stable'' instead of creating ''mysettings''. But this seems not to be idiomatic git usage.
==== monospaced in blue ==
lib/tpl/default/design.css --- 2007-01-06 17:16
diff design.css.org design.css
465a466
> color: darkblue;
==== Update Manual ==
Infos from [[doku>wiki:install:upgrade]]
General Update strategy:
* Install new version near old
* Take over modifikations:
* If old configfile.dist == new configfile.dist just copy configfile
* If old configfile.dist != new configfile.dist get differencs between old configfile.dist and old configfile with ''diff -u configfile.diff configfile > diffs''; cp new configfile.dist to configfile; patch new configfile with ''patch configfile diffs''
* Take over data
Update in detail:
* Make a backup of whole dokuwiki dir eg. with admin tool from provider
* Optional: Remove unnecessary data:
* ''~/www/dokuwiki/data > rm -r attic/*''
* ''~/www/dokuwiki/data > rm -r cache/*''
* ''~/www/dokuwiki/data > rm -r meta/*'' :?: be careful with comment plugin :?:
* ''~/www/dokuwiki/data > rm changes.log ; touch changes.log''
* Download from http://www.splitbrain.org/projects/dokuwiki on the server with wget and unpack it
* Delete all dirs but en/ es/ & de/ in inc/lang
* Take over config files in dokuwiki/conf
* cp acl.auth.php from old to new
* cp local.php from old to new
* patch diffs form old smilies.conf.org and old smilies.conf to new smilies.conf
* cp icon_ok.png & icon_no.png in lib/smilies
* Enable rewriting by editing dokuwiki/.htacces file, see below
* Take over data: mv pages/* and media/*
* ''mv dokuwiki/ dokuwiki.old''
* ''mv dokuwiki- dokuwiki''
* Check access permissions :!:
* delete tgz file
* copy plugins:
* ~/www > cp -a dokuwiki.old/lib/plugins/linebreak/ dokuwiki/lib/plugins/
* patch ''lib/tpl/default/print.css'' and ''lib/tpl/default/design.css''
==== Update Log ==
* 2006-04-24(?) --- Update to 2006-03-09
* 2007-01-26 --- Update to 2006-11-06
==== Config Log ==
Always conserve the original file before any changes! Eg. ''cp print.css print.css.org''
=== Bash Syntax Highlighting ==
Comments wasn't recognized as comments. Removed ''inc/geshi/bash.php'' of version 2006-11-06 with that of old version 2006-03-09
=== URL Rewriting ==
Uncomment everithing beginning with ''#Rewrite...'' in ''~/www/dokuwiki/.htaccess''. But **not** the line ''#RewriteBase /dokuwiki''. See [[dokuwiki>wiki:rewrite]]
=== Normal text left, not justified ==
lib/tpl/default/print.css line 65 --- 2006-08-18
diff print.css.org print.css
65c65
< text-align: justify;
---
> text-align: left;
=== monospaced in blue ==
lib/tpl/default/design.css --- 2007-01-06 17:16
diff design.css.org design.css
465a466
> color: darkblue;
==== To Do =====
* Remove languanges from discussion plugin
* Install [[http://www.wikidesign.ch/en/plugin/discussion/start|Discussion Plugin]]
* Read & do http://wiki.splitbrain.org/wiki:security
* http://wiki.splitbrain.org/wiki:tips:hide-inaccessible-items-in-indexes
==== Old ======
=== Installation and Upgrade ==
== Installation =====
At date? version 2005-07-13 installed
== Upgrade to 2005-09-22 =====
At 2005-09-29 20:53
Infos from [[doku>wiki:install]] - > upgrading
At the server:
wget http://www.splitbrain.org/Programming/PHP/DokuWiki/dokuwiki-2005-09-22.tgz
tar -xzf dokuwiki-2005-09-22.tgz
mv dokuwiki dokuwiki.2.bak
mv dokuwiki-2005-09-22 dokuwiki
dokuwiki/data > touch changes.log
cp -r dokuwiki.2.bak/data/pages/* dokuwiki/data/pages/
cp -r dokuwiki.2.bak/data/media/* dokuwiki/data/media/
%%dokuwiki.2.bak/conf > cp -v acl.auth.php local.php users.auth.php ~/www.think-deep.com/dokuwiki/conf/%%
In inc/lang all dirs but en/ es/ & de/ deleted
=== Changes at the Sourcecode ======
== Enabling Line Breaks =====
FIXME This is not done yet!
== inc/parser/handler.php ====
The following code in function process($calls) of class Doku_Handler_Block
if ( isset($calls[$key+1]) && $calls[$key+1][0] == 'eol' ) {
//...
}else{
//if this is just a single eol make a space from it
$this->calls[] = array('cdata',array(" "), $call[2]);
}
replaced with:
if ( isset($calls[$key+1]) && $calls[$key+1][0] == 'eol' ) {
//...
}else{
$dobreak= true; // debugging
if ($dobreak && isset($calls[$key-1])
&& ($calls[$key-1][0] != 'eol')
&& ($calls[$key-1][0] != 'linebreak') ){
$this->calls[] = array('linebreak',array(), $call[2]);
} else {
$this->calls[] = array('cdata',array(" "), $call[2]);
}
}
deduced from [[doku>wiki:discussion:nonewline]]
== inc/lang/en/edit.txt ====
All Line breaks removed from that file because those breaks would also be displayed when edition a wiki page
== lib/tpl/default/design.css ====
In order to get line breaks also in indented areas:
Source: http://wiki.splitbrain.org/wiki:tips:prewithwrap
/* code block by code tag */
pre.code {
/* ..*/
/* becki added source: http://wiki.splitbrain.org/wiki:tips:prewithwrap */
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
=== Changes at Configuration Files ======
== .htaccess ====
Commented in for nice URL's:
RewriteEngine on
RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [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
== conf/local.php ====
$conf['title'] = 'Beckis Own Wiki'; //what to show in the title
$conf['useacl'] = 1; //Use Access Control Lists to restrict access?
$conf['openregister']= 1; //Should users to be allowed to register?
$conf['autopasswd'] = 0; //autogenerate passwords and email them to user
$conf['superuser'] = 'admin';
$conf['htmlok'] = 1;
2006-02-06 10:24 :
$conf['dformat'] = 'Y-m-d H:i'; //dateformat accepted by PHPs date() function
$conf['signature'] = ' --- [[@MAIL@|@USER@]] @DATE@'; //signature see wiki:config for details
2006-03-02 for nice URL's:
$conf['userewrite'] = 1; //this makes nice URLs: 0:off 1:.htaccess 2:internal
== conf/interwiki.conf ====
Shortcut for Php manual:
# becki added
phpman http://de.php.net/manual/en/{NAME}.php
== lib/images/interwiki/ ====
Icon for shortcut for Php manual:
favicon from php.net fetched, converted to gif with convert & uploaded