Englisch: Wichtige Seiten Hilfestellungen Externe Links Alle Inhalte dieses Wikis, soweit nicht anders angegeben, unter Creative Commons CC-BY-SA |
PmWikiDe /
Seitenlistenvorlagen
Administratoren (FTP)
PmWikis Standardvorlagen für Seitenlisten sind in Site.PageListTemplates (wikilib.d) zu finden, diese Seite wird bei Upgrades ersetzt. Die darin enthaltenen Standardvorlagen können ergänzt oder überschrieben werden mit angepassten Vorlagen, die an anderer Stelle gespeichert werden. Standard-Seitenlisten-VorlagePmWikis Standardkonfiguration sucht in den folgenden Seiten in dieser Reihenfolge nach der Vorlage:
Wenn die Vorlage in einer Seitenleiste (sidebar), im Kopf- oder Fußbereich der Gruppe (groupheader/-footer), etc. definiert ist, muss der Seitenname als Teil des Vorlagennamen angegeben werden. Wenn die Vorlage in die aktuellen Seite eingebettet ist, muss die aktuelle Seite erst gespeichert werden, bevor Auswirkungen an Änderungen der Vorlage sichtbar werden. Die 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 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 -Direktive benutzen, wie diese: (:if ! equal {<$Group} {=$Group}:) Gruppe: {=$Group} (:ifend:) * [[{=$FullName}]] schreibt man nun: (: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 {$$EachCount} Die aktuelle Seitenzählung innerhalb der aktuellen Schleife {$$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 Anmerkung: Nicht die @(:table:)@]-Direktive öffnet eine Tabelle, es ist die 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
|