|
|
|
Englisch: 47 von 115390 Zugriffen |
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. PmWikis Standardkonfiguration sieht in folgenden Seiten in dieser Reihenfolge nach der Vorlage:
Wenn die Vorlage in einer Seitenleiste (sidebar), Kopf- oder Fußbereich der Gruppe (groupheader/-footer), etc. definiert ist, muss der Seitenname als Teil des Vorlagennamen angegeben werden. 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 Seitenlisteniteration aufgefrischt und können mit der Seitenvariablen-Syntax benutzt werden, wie etwa {=$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:) Seiten in der Liste: (:template each:) * [[{=$FullName}]] [-{=$:Summary}-] (:template last:) {$$PageCount} Seiten angezeigt. 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 die (:if ! equal {<$Group} {=$Group}:) Gruppe: {=$Group} (:ifend:) * [[{=$FullName}]] kann man nun schreiben: (:template first {=$Group}:) Gruppe: {=$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ählung für diese Iteration {$$GroupCount} Die aktuelle Gruppenzählung für diese Iteration {$$GroupPageCount} Die aktuelle Seitenzählung innerhalb der Gruppe für diese Iteration {$$option} Die Werte des Arguments 'option' 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, am Ende dieser Seitenliste automatisch geschlossen. 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 Sie weiterhin von Upgrades profitieren. Stattdessen sollten Sie die betreffende Vorlage in Ihre Site.LocalTemplates?-Seite kopieren und dort verändern (und umbenennen). Die Seite Site.LocalTemplates ist nicht Teil der PmWiki-Distribution und muss ggf. erst angelegt werden. Cookbook:PagelistTemplateSamples enthält viele Beispiele, wie Sie Seitenlistenformate an Ihre eigenen Bedürfnisse anpassen können. Weitere RezepteZusätzlich gibt es in den Kochbüchern weitere Rezepte für besondere
Übersetzung von PmWiki.PageListTemplates, Originalseite auf PmWikiDe.PageListTemplates — Rückverweise
|
Do not sell my personal information!!! (Privacy settings)