Hallo!
Ich hatte das gleiche Problem, weil wir ein umfangreiches Wiki mit mehr als 300 Usern rund um die Sicherheit von mobilen Geräten (iPhone, Android, Windows Phone) betreiben (
https://www.antago.info/siwian) und wir den Nutzern neben dem allgemeinen auch speziell abgestimmte Unterlagen (Betriebskonzepte etc.) bereit stellen. Hier lag die Einrichtung von Homepages nahe. Das Plugin ''userhomepage'' (
https://www.dokuwiki.org/plugin:userhomepage) hilft hier, die lästige Routinearbeit zu übernehmen.
Aber nun zum Problem: Wie kann man für den User einen individuellen Link auf seine Homepage zur Verfügung stellen?
Nach einiger Recherche scheint die Situation wie folgt zu sein: DokuWiki unterstützt keine dynamischen Links (wie z.B. [[home:@USER@:start]] und auch Plugins helfen nicht weiter (wenn ich hier falsch liege, bin ich um einen Hinweis sehr dankbar).
Ich habe mich schließlich an der Seite
https://www.dokuwiki.org/tips:homepages orientiert und Änderungen am Code des Templates "DokuWiki" (Dateien tpl_header.php, main.php und pagetools.css) und an DokuWiki selbst (Datei templates.php und language.php) vorgenommen. Änderungen am Code machen Updates schwierig, aber da unser Wiki mit mehr als 30 Plugins betrieben wird kommt es auch eine Baustelle zusätzlich auch nicht mehr an... :-)
Außerdem macht es der klare Aufbau von Dokuwiki einfach, neue Features einzubauen (großes Lob an die Entwickler!!!).
Hier die Details:
!!
!! ACHTUNG:
!! Diese Anleitung ist gültig für DokuWiki "2012-09-10 stable release".
!! Die Modifikationen SOLLTEN aber auch bei neueren Versionen funktionieren.
!!
---- Neuer Code in inc/templates.php, Funktion tpl_get_action($type), einbauen in switch($type) ----
/** 131127-MSe: new action 'home' **/
case 'home':
if(!$_SERVER['REMOTE_USER']) {
return false;
}
$id = 'home:'.hsc($_SERVER['REMOTE_USER']).':start';
$params['do'] = 'show';
break;
---- Neuer Code in lib/tpl/dokuwiki/main.php, bei Zeile 80 ----
<?php
// 131127-MSe: added 'Home' button
tpl_action('home', 1, 'li', 0, '<span>', '</span>');
//
tpl_action('profile', 1, 'li', 0, '<span>', '</span>');
tpl_action('edit', 1, 'li', 0, '<span>', '</span>');
tpl_action('revert', 1, 'li', 0, '<span>', '</span>');
tpl_action('revisions', 1, 'li', 0, '<span>', '</span>');
tpl_action('backlink', 1, 'li', 0, '<span>', '</span>');
tpl_action('subscribe', 1, 'li', 0, '<span>', '</span>');
tpl_action('top', 1, 'li', 0, '<span>', '</span>');
?>
---- Neuer Eintrag in /inc/lang/??/language.php ----
// 131127-MSe: Label for 'Home' button
$lang['btn_home'] = 'Zum persönlichen Verzeichnis';
Ein wenig kniffelig ist das Einfügen des 'Home'-Icons. Die Buttons für das Seitenmenue (pagetools genannt) liegen in einer einzigen Datei vor (lib/tpl/dokuwiki/images/pagetools-sprite.png) und werden in der CSS-Datei ib/tpl/dokuwiki/css/pagetools.css über Offsets adressiert. Also: GIMP nutzen, pagetools-sprite.png vergrößern, zwei neue Icons anhängen und die Datei pagetools.css um die folgenden Zeilen ergänzen:
---- Neue Zeilen am Ende von /tpl/dokuwiki/css/pagetools.css, bei Zeile 80 ----
#dokuwiki__pagetools ul li a.home {
background-position: right -1080px;
}
#dokuwiki__pagetools ul li a.home:hover,
#dokuwiki__pagetools ul li a.home:active,
#dokuwiki__pagetools ul li a.home:focus {
background-position: right -1125px;
}
[dir=rtl] #dokuwiki__pagetools ul li a.home {
background-position: left -1080px;
}
[dir=rtl] #dokuwiki__pagetools ul li a.home:hover,
[dir=rtl] #dokuwiki__pagetools ul li a.home:active,
[dir=rtl] #dokuwiki__pagetools ul li a.home:focus {
background-position: left -1225px;
}
!!
!! Wer die Datei pagetools-sprite.png nicht selbst modifizieren möchte, kann sie hier herunterladen:
!!
https://www.antago.info/siwian/doku.php?id=allgemein:dokuwiki_homebutton
!!
That's all. :-)
Mark