Administrator (deutsche Übersetzung der Seite PmWiki.LayoutBasics?, Stand 2005-01-01)

Diese Seite beschreibt, wie ein WikiAdministrator das Wiki Erscheinungsbild (Layout) anpassen kann. Dies betrifft insbesondere die Kopf- und Fußbereiche. Das Layout wird über sogenannte Skins festgelegt, welche im Verzeichnis pub/skins/ gespeichert werden. Jeder Skin erhält ein Unterverzeichnis und eine Vorlagendatei (z.B. meinskin.tmpl), welche das Layout der Seitendarstellung definiert. Weiterhin werden in dieses Unterverzeichnis alle CSS-Dateien und Grafiken abgelegt, die für das Layout benötigt werden.

Um dies zu verdeutlichen: PmWiki wird ausgeliefert mit einem Standard-Skin, der "pmwiki" heißt. Dieser ist folglich unter pub/skins/pmwiki gespeichert. Dieses Verzeichnis enthält eine .tmpl Datei, die definiert, wie eine Wikiseite aufgebaut werden soll. Weiterhin befinden sich dort CSS- und Grafikdateien.

Wer das Layout anpassen möchte, hat grundsätzlich 3 Möglichkeiten:

  • Eine Kopie des pmwiki Skins machen und diese verändern.
  • Einen fertigen Skin aus dem Kochbuch zu nehmen, diesen ggf. anpassen. Siehe Cookbook:Skins für Skins, die andere dort veröffentlicht haben.
  • Einen eigenen Skin von Grund auf selber zu gestalten.

Erstellen oder Verändern einer Vorlage

Die grundlegenden Schritte für die Anpassung eines Layouts ist das Anlegen eines eigenen Skin-Verzeichnisses unterhalb von pub/skins/, dem Anlegen einer Vorlagendatei (.tmpl) und evtl. dem hinzufügen von CSS- und Grafikdateien. In der Konfiguration muss man die Variable $Skin anpassen, damit sie auf das neue Skin zeigt.

Im folgenden werden die einzelnen Schritte erklärt.

Anpassen des "pmwiki" Skins

Der pmwiki Skin (pub/skins/pmwiki) ist Teil der PmWiki Installation. Es ist ungünstig, diesen direkt zu ändern, weil bei einem Upgrade dieser überschrieben würde. Stattdessen sollte man ihn einfach in ein neues Verzeichnis kopieren, z.B. nach pub/skins/xyzskin.

Nachdem dies gemacht ist, kann man in diesem Verzeichnis die .tmpl anpassen. Nachdem dies erledigt ist, setzt man in der zentralen Konfigurations-Datei local/config.php die Variable $Skin.

  $Skin = 'yzsskin';

Skin Vorlagen Datei

Eine Vorlagen-Datei (Template mit .tmpl-Endung) ist eine HTML-Datei, die zusätzlich Variablen bzw. Platzhalter enthält. Wenn PmWiki eine Seite zum Browser ausliefert, werden diese Platzhalter durch konkrete Inhalte ersetzt, z.B. den Seiteninhalt. Die Platzhalter werden als HTML-Kommentar eingebettet. Die Direktive <!--PageText--> muss sich innerhalb des <body> Bereiches des HTML-Dokuments befinden. Sie teilt PmWiki mit, dass dort der Seiteninhalt eingefügt werden soll. Eine weitere benötigte Direktive ist <!--HeaderText-->, über die PmWiki Angaben im <head> Bereich des HTML-Dokumentes einfügen kann.

In der ganzen Vorlagen-Datei werden Variablen wie $PageUrl, $ScriptUrl, $Group oder $Title durch die entsprechende URL der aktuellen Seite, der Basis-URL von pmwiki.php, dem Namen der aktuellen Wiki-Gruppe und dem Seitentitel ersetzt. Andere Variablen werden mit dem aktuellen Wert der globalen PHP-Variablen ersetzt.

Einige weitere oft verwendeten Variablen sind:

    $SkinDirUrl -  URL des Skin-Verzeichnisses
    $Namespaced -  Der Name der Seite, mit Leerzeichen zwischen den Wiki-Wörtern
    $Groupspaced -  Der Name der Gruppe, mit Leerzeichen zwischen Wiki-Wörtern

Es gibt weitere Direktiven, womit Inhalte anderer Seiten aufgenommen werden können oder externe Dateien eingefügt werden. Auch können diverse PHP Funktionen aufgerufen werden. Die Direktive <!--wiki:Main.SomePage--> kann benutzt werden, um den Inhalt der Seite Main.SomePage an beliebigen Stellen im Layout anzeigen zu lassen. Dies ist praktisch zum Erzeugen editierbarer Menüs, von Newstickern oder anderen zusätzlichen Infos, die auf jeder Seite angezeigt werden sollen.

Variablen-Substitution funktioniert ebenfalls in Direktiven, so dass <!--wiki:$Group.SomePage--> den Inhalt von SomePage in der aktuellen Gruppe anzeigt. Auch ist es möglich, mehrere Alternativen anzugeben, so dass <!--wiki:$Group.SomePage Main.SomePage--> zuerst versucht, SomePage in der aktuellen Gruppe anzuzeigen. Wenn diese nicht vorhanden ist, wird Main.SomePage stattdessen benutzt.

<< | Dokumentationsindex | >>