Zum Inhalt, überspringe Kopfzeile Zur Navigation, überspringe Kopfzeile
Zusätzlich zur aktuellen Wikiseite soll das DokuWiki noch weitere Wikiseiten anzeigen.
Die Template-Datei main.php wird um eine entsprechende PHP-Routine erweitert die die angegebene zusätzliche Wikiseite lädt und ins Template einfügt.
Will man nur eine vorher bestimmt Wikiseite - z.B. Wiki:Menuezeile - einbinden, so kann man das durch folgenden Code erreichen:
1: <?php 2: // Name der aktuellen Wikiseite 3: global $ID; 4: 5: // Name der aktuellen Wikiseite zwischenspeichern 6: $idalt = $ID; 7: 8: // angegeben Wikiseite einbinden 9: $html = p_wiki_xhtml('[Name der Wikiseite]','',false); 10: $html = str_replace('<p>','',$html); 11: $html = str_replace('</p>','',$html); 12: echo $html; 13: 14: // Name der aktuellen Wikiseite wieder herstellen da 15: // die Funktion p_wiki_xhtml() die Variabel $ID überschreibt 16: $ID = $idalt; 17: ?>
Des öfteren bietet es sich auch an eine bestimmte Wikiseite aus dem jeweiligen aktuellen Namespace einzubinden. Dadurch ist es möglich für jeden Namespace andere Wikiseiten anzeigen zu lassen:
1: <?php 2: global $ID, $ACT; 3: 4: // Wikiseite nur einbinden wenn aktuelle Wikiseite nicht bearbeitet wird 5: if ($ACT == 'show') { 6: // Name der aktuellen Wikiseite zwischenspeichern 7: $idalt = $ID; 8: 9: // Name der Wikiseite in seine Bestandteile aufteilen 10: $array = split(':',$ID); 11: 12: // Anzahl der Teile feststellen 13: $max = count($array); 14: 15: // angegebene Wikiseite einbinden falls man sich nicht in einem Namespace befindet 16: if ($max == 1) $html = p_wiki_xhtml('[Name der Wikiseite]','',false); 17: else { 18: $nr=$max-2; 19: 20: // aktuellen Namespace ermitteln bzw. Pfad zusammenstellen 21: for ($i=0;$i <= $nr; $i++) $text.= $array[$i].':'; 22: 23: // angebene Wikiseite im ermittelten Namespace einbinden 24: $html = p_wiki_xhtml($text.'[Name der Wikiseite]','',false); 25: } 26: 27: // Ausgabe der angegebenen Wikiseite nur wenn diese auch vorhanden ist 28: if (strlen($html) > 0) { 29: echo '<div class="[Eigene CSS-Klasse]">'."\n"; 30: $html = str_replace('<p>','',$html); 31: $html = str_replace('</p>','',$html); 32: echo $html; 33: echo "</div>\n"; 34: } 35: 36: // Name der aktuellen Wikiseite wieder herstellen da 37: // die Funktion p_wiki_xhtml() die Variabel $ID überschreibt 38: $ID = $idalt; 39: } 40: ?>
Zum Inhalt zurück, überspringe Navigation | Zum Seitenanfang