Die Layout-Variablen

Administratoren, Entwickler von Skins

Variablenersetzungen in den Skin-Vorlagen werden alle durch die Funktion FmtPageName() aus pmwiki.php durchgeführt. PmWiki-Variablen-Ersetzungen, auf die in den Seiten zugegriffen werden kann, werden durch die -Ersetzung aus stdmarkup.php gemanaged oder werden übergeordnet in local/config-Dateien definiert.

$ActionSkin
Dieses Array wird benutzt, um das aktuelle Skin zu überschreiben, wenn eine gegebene Aktion ausgeführt wird. Die gebräuchlichste Nutzung ist, $ActionSkin['print']='foo' zu setzen, um das 'foo'-Skin zum Drucken einzustellen, was auch immer sonst in der $Skin-Variable eingestellt ist.
$WikiTitle
enthält den Wiki-Titel, so wie er in der Titelleiste des Browsers bzw. im Tab angezeigt wird.
$EnablePageTitlePriority
regelt, wie mehrfache (:title ...:)-Seiten-Direktiven gehandhabt werden.
$EnablePageTitlePriority = 0; # PmWiki Voreinstellung, der zuletzt eingestellte Titel gewinnt (der Titel könnte von Include-Seiten oder vom GroupFooter geändert werden).
$EnablePageTitlePriority = 1; # der erste Titel gewinnt; wenn ein Titel in der Seite definiert wird, kann er von Include-Seiten nicht überschrieben werden.
$EnableDiffInline
Auf 0 gesetzt, schaltet die Variable die Hervorhebung der geänderten Wörter in der Darstellung der Versionen einer Seite ab.
$EnableDiffInline = 0; # Farben abschalten, reine Textunterschiede anzeigen
$HTMLStylesFmt
Ein Array von CSS-Anweisungen, die bei der Seitenausgabe in den HTML-Kopf (<head>-Teil) eingefügt wird. Dies Array bietet einen einfachen Platz für Skripten, um spezifische CSS-Anweisungen hinzuzufügen.
$HTMLHeaderFmt
Ein Array aus HTML-Text, der in den <head>-Bereich eingefügt wird an der Stelle, wo die Skin-Vorlage eine <!--HTMLHeader-->-Anweisung enthält. Dieses Array bietet einen einfachen Platz für Skripten, um spezifische HTML-Header-Zeilen einzufügen.
Sie möchten zum Beispiel ein Logo für alle Seiten Ihres Wiki einrichten (ein PNG-Bildchen für Firefox (und andere ...), ein 'ico' für den Internet-Explorer)
$HTMLHeaderFmt['logo'] =
  '<link href="http://path/to/logo.png" type="image/png" rel="icon" />
  <link href="http://path/to/logo.ico" type="image/x-icon" rel="shortcut icon" />';
Noch ein Beispiel: wenn Sie eine rss-Anzeige in einigen Browsern erreichen wollen (etwa das rss-Icon in Firefox):
 
$HTMLHeaderFmt['rss'] =
  '<link rel="alternate" type="application/rss+xml" title="Rss All recent Changes" 
     href="$ScriptUrl/Site/AllRecentChanges?action=rss" />';
$HTMLFooterFmt
Wie $HTMLHeaderFmt oben, enthält diese Variable ein Array mit HTML-Text, der ziemlich am Ende der HTML-Seite an der Stelle eingefügt wird, die durch die <!--HTMLFooter-->-Anweisung in der Skin-Vorlage bezeichnet ist (gewöhnlich direkt vor dem schließenden <body-Tag). Das wird vornehmlich durch Skripten benutzt, um eine spezifischen HTML-Ausgabe am Ende der Seitenausgabe einzufügen.
$MetaRobots
setzt den Wert des <meta name='robots' ... />-Tags, das PmWiki erzeugt, um den Zugriff der Suchmashinen-Roboter auf die Site zu regeln. PmWikis Voreinstellungen erlauben den Suchmaschinen nichts außer die reinen Textseiten zu indexieren (also z. B. nicht dem Link 'Bearbeiten' zu folgen), auch die Seiten der PmWiki-WikiGruppe wird nicht in die Suchmaschine aufgenommen. Setzt man $MetaRobots explizit, so werden diese Voreinstellungen überschrieben.
        # diese Site niemals indexieren
        $MetaRobots = 'noindex,nofollow';
        # das Robots-Tag ganz und gar deaktivieren
        $MetaRobots = '';
$MessagesFmt
Ein Array mit HTML-Text, der anstelle jedes (:messages:)-Markups angezeigt wird. Gewöhnlich wird es benutzt, um Angaben bezüglich der Bearbeiten-Seiten auszugeben.
$RecentChangesFmt
Ein Array, das das Format für die Auflistung der 'Aktuellen Änderungen' angibt.
Der Schlüssel eines Arrayeintrags bezeichnet die Seite, wo Änderungen aufgezeichnet werden wie in
$RecentChangesFmt['$SiteGroup.AllRecentChanges']
Der Wert eines Arrayeintrags gibt das Format an, in dem die Änderungen aufgezeichnet werden wie in
'* [[{$Group}.{$Name}]]  . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]'
Beachten Sie die beiden aufeinanderfolgenden Leerzeichen vor den drei Punkten (. . .). Die beiden Leerzeichen trennen zwei Teile des Formats: der erste Teil ändert sich nicht (z. B. ein Verweis auf die geänderte Seite, der zweite Teil änder sich (z. B. der Autor und das Datum der Änderung). Beim Speichern einer Seite, entfernt PmWiki eine Zeile, die auf den ersten Teil passt, und fügt eine Zeile hinzu mit dem aktuellen Format vor der ersten Zeile mit zwei Leerzeichen. Auf diese Weise bleibt jede Zeile mit zwei aufeinanderfolgenden Leerzeichen oben am Anfang auf der Änderungen-Seite.
Sie können das Folgende benutzen und anpassen, um das Format zu ändern (fügen Sie es in die config.php ein):
$RecentChangesFmt['$SiteGroup.AllRecentChanges'] = 
  '* [[{$Group}.{$Name}]]  . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';
$RecentChangesFmt['$Group.RecentChanges'] =
  '* [[{$Group}/{$Name}]]  . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';
Beachten Sie, dass sich die Änderungen an dem Format nur auf neu Geschriebenes auswirken. Mit anderen Worten müssen Sie eine Seite editieren, damit Ihr neues Format sichtbar wird. Beachten Sie auch, dass Sie zwei Leerzeichen zwischen dem Seitennamen und den weiteren Informationen zu dem Text stehen haben müssen.
Beachten Sie außerdem, dass diese Variable weitere Nutzungen hat, wie keine Änderungen an den Seiten 'Aktuelle Änderungen' und 'Alle Änderungen' zu protokollieren, siehe PmWiki Questions.
$RecentUploadsFmt
Ein Array, das das Format für hochgeladene Dateien in den 'Aktuellen Änderungen' angibt. Es ist ähnlich dem $RecentChangesFmt. Wenn es aktiviert wird, werden neue hochgeladene Dateien in den 'Aktuellen Änderungen' geloggt. Voreinstellung ist inaktiv. Siehe Cookbook:RecentUploadsLog für weitere Informationen.
$DraftRecentChangesFmt
Ein Array mit dem Format für die 'Aktuellen Änderungen', wenn ein Entwurf gespeichert wird.
$RecentChangesFmt wird auf $DraftRecentChangesFmt gesetzt, wenn ein Entwurf gespeichert wird. So können Sie z. B. die Entwürfe in einer gesonderten 'Aktuelle Änderungen an Entwürfen'-Seite (engl.: Recent Draft Changes page) auflisten anstatt auf der 'Aktuelle Änderungen'-Seite der Gruppe:
$DraftRecentChangesFmt['$Group.RecentDraftChanges'] =
  '* [[{$Group}/{$Name}]]  . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';
$DraftRecentChangesFmt['$Group.RecentChanges'] = '';
$RCLinesMax
Die maximale Zahl an Zeilen, die in der 'Aktuelle Änderungen'-Seite gespeichert werden. Der Standard ist 0, das bedeutet unendlich.
          $RCLinesMax = 1000;       # verwalte höchstens 1000 aktuelle Änderungen
$PageRedirectFmt
Der Text, der angegeben wird, wenn eine Seite via (:redirect:)-Anweisung umgeleitet wurde.
$PageRedirectFmt = '<p><i>redirected from $FullName</i></p>';
$PageRedirectFmt = '';
Für Anzeigeoptionen siehe auch die FAQ auf PageDirectives.
$WikiStyle
Ein Array, das die vordefinierten WikiStile enthält, die man auf einer Textseite einsetzen kann.
Siehe PmWikiDe.CustomWikiStyles
$WikiStyleApply
Ein Array, das den Geltungsbereich der Wikistile per HTML-Elementen definiert. Standardeinstellungen sind:
'item' => 'li|dt',
'list' => 'ul|ol|dl',
'div' => 'div',
'pre' => 'pre',
'img' => 'img',
'block' => 'p(?!\\sclass=)|div|ul|ol|dl|li|dt|pre|h[1-6]',
'p' => 'p(?!\\sclass=)'
Dies definiert, dass wir Wikistile ausdehnen können auf
  • LI-Elemente mit dem Schlüsselwort item
  • UL-, OL-, DL-Elenmente mit dem Schlüsselwort list
  • etc.
Ein Beispiel für die Ausdehnung des Geltungsbereiches auf ein LI-Element steht hierunter. Für weitere Infomationen sei verwiesen auf WikiStyle scopes.
* %apply=item red%Hier ist ein rotes
Listensymbol
* Dies Item enthält keinen Stil
* %red%Hier ist nur der Text rot, das
Listensymbol aber nicht
  • Hier ist ein rotes Listensymbol
  • Dies Item enthält keinen Stil
  • Hier ist nur der Text rot, das Listensymbol aber nicht
Du kannst zusätzliche HTML zu $WikiStyleApply hinzufügen(englisch), um Wikistile auf andere HTML-Elemente auszudehnen, zum Beispiel um Stile auf Tabellenzeilen oder Anker-Tags auszudehnen.
$MaxIncludes
kontrolliert die Zahl von Einfügungen, die Seiten mit Hilfe von (:include:)- und anderen Anweisungen machen können, das wird genutzt, um endlose Rekursionen in den Griff zu bekommen. $MaxIncludes ist auf 50 gesetzt, kann aber vom Wikiadministrator auf jeden beliebigen Wert gestzt werden.
        $MaxIncludes = 50;            # Standard
        $MaxIncludes = 1000;          # erlaubt viele Einfügungen
        $MaxIncludes = 0;             # unterbindet Einfügungen 
$Skin
listet den (die) Namen von Skins auf, die geladen werden, es sei denn, durch $ActionSkin wird das überschrieben. Normalerweise enthält $Skin einen einzigen String, der den Namen eines Skinverzeichnisses enthält, aber es kann auch ein Array von Namen sein, wobei dann der erste gefundene Skin aus der Liste benutzt wird.
$SkinDirUrl
wird in scripts/skins.php auf die Basis-Url des Verzeichnisses des aktuellen Skins gesetzt (z. B. innerhalb des 'pub/skins/'-Verzeichnisses). Die Variable wird typischerweise innerhalb einer .tmpl-Datei eines Skins benutzt, um Zugriff auf .css-Dateien und grafische Elemente zu erhalten, die mit dem Skin verbunden sind.
$SkinLibDirs
Ein Array, das die passende Url liefert (Arrayeintrag-Wert), wenn man es mit dem Dateisystempfad zu einem Skin (oder zu einem Verzeichnis mit mehreren Skins) füttert (Arrayeintrag-Schlüssel).
Der Schlüssel ist das Verzeichnis, das die 'skin.tmpl'- und die 'skin.php'-Datei enthält, wie sie das PmWiki-Programm sieht.
Der Wert ist die Url (Webadresse) des Verzeichnisses, das die .css-, .gif- und andere Dateien enthält, die in den HTML-Kode eingebettet sind, die von PmWiki an den Browser geschickt werden. Dies Verzeichnis muss öffentlich zugänglich sein.
per Standard ist das Verzeichnis gesetzt auf:
$SkinLibDirs = array(
  "./pub/skins/\$Skin" => "$PubDirUrl/skins/\$Skin",
  "$FarmD/pub/skins/\$Skin" => "$FarmPubDirUrl/skins/\$Skin");
Extradetails: Wenn PmWiki nach einem Skin sucht, schaut es unter den Arrayschlüsseln nach einem Verzeichnis, das nach dem Skin benannt ist, und wenn es es findet, wird es dann die Dateien in diesem Verzeichnis und auch die Dateien unter der korrespondierenden Url (Arraywert) nutzen. Diese beiden zeigen normalerweise auf das gleiche öffentlich zugängliche Verzeichnis, sie müssen es aber nicht.
$PageLogoUrl
ist die Url, die auf ein Logobild verweist, das die meisten Skins irgendwo auf der Wikiseite im Kopf anzeigen, (meistens oben links).
$EnablePathInfo
beeinflusst das Handling der Seiten-Urls. Wenn sie auf 1 gesetzt wird, ist die Url ...wiki.php/Main/Main, wenn sie auf 0 (Standard) gesetzt wird, ist die Url ...wiki.php?n=Main.Main.
$EnableFixedUrlRedirect
Wenn PmWiki nur einen Teil eines Seitennamen erhält (z. B. nur den Gruppennamen), benutzt es $EnableFixedUrlRedirect, um daraus einen vollständigen Seitennamen zu machen, dann sendet es ein "redirect" an den Browser, um ihn zu veranlassen, die Seite mit dem vollständigen Seitennamen aufzurufen. Setzt man $EnableFixedUrlRedirect auf 0, blockiert man diese Umleitung, so dass PmWiki im Weiteren mit dem angepassten Seitennamen statt mit dem Redirect arbeitet.
$GroupHeaderFmt
definiert die HTML-Einfügung am oberen Rand jeder Seite. Der Standardwert ist:
        $GroupHeaderFmt = '(:include $Group.GroupHeader:)(:nl:)';
$GroupPrintHeaderFmt
definiert die HTML-Einfügung am oberen Rand jeder Seite, wenn action=print aktiv ist. Der Standardwert ist:
        SDV($GroupPrintHeaderFmt,'(:include $Group.GroupPrintHeader:)(:nl:)');
$GroupFooterFmt
definiert die HTML-Einfügung am unteren Rand jeder Seite. Der Standardwert ist:
        $GroupFooterFmt = '(:include $Group.GroupFooter:)(:nl:)';
$GroupPrintFooterFmt
definiert die HTML-Einfügung am oberen Rand jeder Seite, wenn action=print aktiv ist. Der Standardwert ist:
        SDV($GroupPrintFooterFmt,'(:nl:)(:include $Group.GroupPrintFooter:)');
$PageNotFoundHeaderFmt
gibt den HTTP-Header an, der gesendet wird, wenn eine nicht existierende Seite angefordert wurde. Einige Webserver (bemerkenswerterweise Microsofts "Personal Web Sever") erfordern, dass diese Variable angepasst wird, damit sie funktioniert.
# default
$PageNotFoundHeaderFmt = 'HTTP/1.1 404 Not Found';
# return all pages as found
$PageNotFoundHeaderFmt = 'HTTP/1.1 200 Ok';

Vorsicht vor der Erwartung, es werde der Inhalt von Gruppen-(Headern|Footern) ausgegeben bei einer nicht esistierenden Seite. Standardmäßig antwortet PmWiki mit 404 (da ja die Seite nicht existiert), ungeachtet dessen, dass ein bißchen was anzuzeigen ist. Firefox zeigt den Inhalt, wohingegen der Internet-Explorer seine eigene 404-Seite anzeigt. $PageNotFoundHeaderFmt MUSS auf die Rückgabe von 200 eingestellt werden, damit ein erwartetes Verhalten von allen Browsern gezeigt wird.

$HTMLVSpace
$HTMLVSpace = ''; in einer localen Anpassunsdatei (z. B. local/config.php) zu setzen, verhindert die Einfügung von abstanderzeugenden Absätzen (<p class='vspace'></p>) im erzeugten HTML-Kode. Um diese Änderung auf ein einziges Skin zu begrenzen, füge (<p class='vspace'></p>) in eine skin.php-Datei ein, stelle noch eine global $HTMLVSpace;-Anweisung voran.
$TableCellAttrFmt
Für Tabellen werden die HTML-Attribute definiert, die jeder <td>- oder <th>-Zelle mitgegeben werden. Kann Referenzen enthalten auf $TableCellCount, was die Spaltennummer der aktuellen Zelle enthält.
$TableCellAlignFmt
Für Tabellen, definiert die Tabellenattribute zum Ausrichten aller <td>- oder <th>-Zellen. Voreinstellung ist " align='%s'", wobei %s ersetzt wird durch 'center', 'left' oder 'right'. Für eine gültigen HTML5-Ausgabe möchten Sie dies vielleicht in der config.php-Datei ändern in
$TableCellAlignFmt = " class='%s'";
und dann die CSS-Klassen td.center, td.left und td.right einrichten (entsprechend für th).
$TableRowAttrFmt
Für Tabellen werden die HTML-Attribute definiert, die jeder <tr>-Zeile in der Ausgabe mitgegeben werden. Kann Referenzen enthalten auf $TableRowCount, der absoluten Gesamtzahl der Zeilen der Tabelle, oder $TableRowIndex, das eine fortlaufende Nummer für jede Zeile liefert von 1 bis $TableRowIndexMax.
        # Gib jeder Zeile eine einzigartige CSS-Klasse, 
        # basierend auf der Zeilennummer (tr1, tr2, tr3, ... )
        $TableRowAttrFmt = "class='tr\$TableRowCount'";
        # Gib den Zeilen alternierende CSS-Klassen (ti1, ti2, ti1, ti2, ti1, ... )
        $TableRowIndexMax = 2;
        $TableRowAttrFmt = "class='ti\$TableRowIndex'";
$TableRowIndexMax
Der Maximalwert für $TableRowIndex in Tabellen.
        # Set rows indexes as 1, 2, 3, 1, 2, 3, 1, 2, ...
        $TableRowIndexMax = 3;
        Siehe hierüber $TableRowAttrFmt
$FmtV['$TableCellCount']
interne Variable von PmWiki - die horizontale Spaltennummer der aktuellen Zelle. Zum Gebrauch in

$TableCellAttrFmt und $TableRowAttrFmt.

        Beispiel: $TableCellAttrFmt = 'class=col\$TableCellCount'; 
$FmtV['$TableRowIndex']
interne Variable von PmWiki - die Zeilenindexnummer der aktuellen Zelle, abgeleitet von $TableRowIndexMax (1,2,3,1,2,3,1,2,...)
        Example: $TableRowAttrFmt = "class='ind\$TableRowIndex'";

siehe auch Die Bearbeiten-Variablen


Übersetzung von PmWiki.LayoutVariables Originalseite auf PmWikiDe.LayoutVariables - Rückverweise
Zuletzt geändert:
PmWikiDe.LayoutVariables am 25.01.2014
PmWiki.LayoutVariables am 28.02.2014