Englisch: IDB Wiki |
PmWikiDe /
Seitenlistenvorlagen
Administratoren (FTP)
Standard-Seitenlisten -VorlagePmWikis Standardvorlagen für Seitenlisten sind in Site.PageListTemplates (wikilib.d) zu finden, diese Seite wird bei Upgrades ersetzt. Diese Standardvorlagen können ergänzt oder überschrieben werden mit angepassten Vorlagen, die an anderer Stelle gespeichert werden. Wenn der Seitenname nicht als Teil des Vorlagennamen angegeben wird, sieht PmWikis Standardkonfiguration in folgenden Seiten in dieser Reihenfolge nach der Vorlage:
Administratoren können diese Orte ändern, indem sie die Variable Wenn die Vorlage auf der aktuellen Seite liegt, muss die aktuelle Seite erst gespeichert werden, bevor Auswirkungen an Änderungen der Vorlage sichtbar werden (Vorschau allein reicht dafür nicht aus). Angepasste SeitenlistenvorlagenAngepasste Vorlagen werden in der gleichen Weise benutzt wie die Standardvorlagen: durch Verweisen auf das gewünschte Format mit der
Siehe Cookbook:PagelistTemplateSamples für Beispiele von angepassten Seitenlistenformaten. Seitenlistenvorlagen erzeugenEine Seitenlistenvorlage enthält Standard-PmWiki-Markups. Wenn man eine Seitenlistenausgabe erzeugt, iteriert PmWiki über jede Seite, die die Seitenliste ausgibt und dekoriert jede einzelne Seite mit Formatierungsanweisungen (Markups). Spezielle VerweiseWährend der Seitenlisteniteration setzt PmWiki drei spezielle Seitenverweise: =, < und >. Diese speziellen Verweise werden für jede Seitenlisteiteration aufgefrischt und können mit der Seitenvariablen-Syntax benutzt werden, wie {=$variable}, um eine Seitenlistenvorlage zu definieren, die die Seitenlistenausgabe gestaltet. Die Bedeutung dieser speziellen Verweise sind:
Die >- und <-Verweise sind höchst nützlich, um die Seitenlistenausgabe vor und nach der aktuellen Seitenliste zu strukturieren. Einige gebräuchliche Tests, mit denen man die Listenausgabe strukturieren kann, sind:
Anmerkung: Die Markups in der mittleren Spalte sind veraltet Siehe auch Spezielle Referenzen in Seitenvariablen.
Spezielle Markups für SeitenlistenvorlagenSeitenlistenvorlagen können spezielle Abschnitte haben,
um die Ausgabe für die erste oder letzte Seite in der Gruppe zu bezeichnen (benutze !first und !last für die Ausgabe aller Seiten außer der erste/letzte Seite). Es gibt auch ein
Diese erlauben Seitenlistenvorlagen einfach in Abschnitte aufzuteilen, die eingeschlossen oder nicht eingeschlossen werden in die Ausgabe, basierend auf einer Vielfalt von Bedingungen. Diese sind erweiterte Versionen der First, Each, Last, NoneDie einfachsten Versionen der Direktiven sind: (:template first:) # Markup, das nur für die erste Seite angezeigt wird (:template ! first:) # Markup, das für jede Seite außer der ersten angezeigt wird (:template each:) # Markup, das für jede Seite der Liste angezeigt wird (:template last:) # Markup das nur für die letzte Seite angezeigt wird (:template ! last:) # Markup, das für jede Seite außer der letzten angezeigt wird (:template none:) # Markup, das nur angezeigt wird, wenn keine Seite gefunden wurde Eine Seitenlistenvorlage kann also Folgendes festlegen (:template first:) Pages in the list: (:template each:) * [[{=$FullName}]] [-{{=$FullName}$:Summary}-] (:template last:) Displayed {$$PageCount} pages. Zusätzlich können die "first"- und "last"-Optionen weitere Argumente enthalten, die die Kontrolle unterbrechen, wenn etwas für die erste oder letzte Seite eines Kontrollabschnitts erledigt werden soll. Wenn zum Beispiel etwas ausgegeben werden soll beim Erreichen der ersten oder letzten Seite einer Gruppe, schreibt man: (:template first {=$Group}:) (:template last {=$Group}:) Anstatt also Kontrollunterbrechungen zu schreiben, die (:if ! equal {<$Group} {=$Group}:) Group: {=$Group} (:ifend:) * [[{=$FullName}]] kann man nun schreiben: (:template first {=$Group}:) Group: {=$Group} (:template each:) * [[{=$FullName}]] Seiten-Text-Variablen und Seitenspezifische Variablen können ebenso benutzt werden, zum Beispiel (:template default $:Maintainer=- order=$Maintainer,name:) (:template first {=$:Maintainer}:) StandardoptionenZusätzlich kann eine Vorlage Standardoptionen festlegen, die in Seitenlistenkommandos genutzt werden. Zum Beispiel würde eine Vorlage, die von einer Liste von Seiten die Titel ausgibt (und diese nach den Titeln sortiert), so geschrieben werden: [[#bytitle]] (:template defaults order=title:) * [[{=$FullName}|+]] [[#bytitleend]] Dann schreibt der Autor Um mehrere Parameter für eine Option anzugeben, umschließt man sie mit doppelten Anführungszeichen, z. B. zum Sortieren nach einer Seiten-Text-Variablen und dann nach den Seitennamen (:template defaults order="$:Database,name" :)
Beispiele
Also haben wir: [[#template]] (:template defaults order=name:) (:template first:) Pages ordered by group (:template first {=$Group}:) Pages in group [[{=$Group}/]] (:template each:) * [[{=$FullName}]] (:template last {=$Group}:) {=$Group} contains {$$GroupPageCount} pages. (:template last:) {$$PageCount} pages total. [[#templateend]] Zusätzliche Seitenvariablen für SeitenlistenvorlagenZusätliche Seitenspezifische Variablen, die nur während der Seitenlisten erreichbar sind: {$$PageCount} Die aktuelle Seitenzähung für diese Iteration {$$GroupCount} Die aktuelle Gruppenzählung für diese Iteration {$$GroupPageCount} Die aktuelle Seitenzähung innerhalb der Gruppe für diese Iteration {$$option} Die Werte der Agumentoptionen von (:pagelist:) Gebrauch von RedirectUm die Suche nach Seiten zu ermöglichen, die nur genau eine Seite zurückliefern, und um dann anschließend gleich automatisch zu dieser Seite zu springen, fügt man das Folgende zur Seitenlistenvorlage hinzu, in der diese "Springe zu der Seite"-Funktionalität gewünscht ist: (:template last:) (:if equal {$$PageCount} 1:)(:redirect {=$FullName}:)(:ifend:) Abschließen von MarkupsAlle offenen Tabellen, Divs oder sonstigen Strukturen im Inneren von So wird z. B. eine Tabelle, die mit einer (:cell:)-Direktive im ersten (:pagelist:)-Kommando erzeugt wurde, automatisch geschlossen am Ende dieser Seitenliste. Die (:cell:)-Direktive im nächsten (:pagelist:)-Kommando startet dann eine neue Tabelle. Anmerkung: Nicht die (:table:)-Direktive öffnet eine Tabelle, es ist die (:cell:)- oder (:cellnr:)-Direktive, die das tut. Die (:table:)-Direktive kann nichts, als ein paar Attribute für die folgende Tabelle setzen. EinsatzEs ist ratsam, die Seite Site.PageListTemplates nicht direkt zu verändern, so dass man weiterhin von Upgrades ptofitiert. Stattdessen sollte man seine Site.LocalTemplates verändern (die nicht Teil der PmWiki-Distribution ist). Cookbook:PagelistTemplateSamples enthält viele Beispiele, wie man Seitenlistenformate an seine eigenen Bedürfnisse anpassen kann. Weitere RezepteZusätzlich gibt es in diesem Kochbuch weitere Rezepte für besondere << | Dokumentationsindex | >>
Übersetzung von PmWiki.PageListTemplates
Originalseite auf PmWikiDe.PageListTemplates - Rückverweise |