Hilfe:Dynamische Vorlagenerweiterung
| |
Achtung: Du befindest dich in der RPG-Dev-Basis, diese Seite ist Teil der Kategorie RPG-Dev-Wiki:Basis. Änderungen an dieser Seite werden in viele RPG-Dev-Clients nach einem Update ebenfalls übernommen! |
Soll das Verhalten einer Basis-Vorlage modifiziert werden ohne auf Updates wie Bugfixes aus der Basis verzichten zu müssen, so ist die optimale Lösung hierfür die Vorlage durch das CustomTemplate-Listen-System zu modifizieren. Dies ist jedoch nur für alle Vorlagen in Kategorie:RPG-Dev Individualisierbare Vorlagen möglich. Diese Vorlagen nutzen die Vorlage Vorlage:CustomTemplate durch die die Individualisierung erst möglich wird.
Prinzip der Hash-Tabellen-Listen und Key-Liste
Dieses System zur Individualisierung funktioniert so, dass einzelne von der Vorlage generierte Teilbausteine in einer Hash-Tabelle gespeichert werden zusammen mit einem festgelegten Key. Parallel dazu wird eine Array-Liste angelegt die alle Keys in der Reihenfolge in der diese ausgegeben werden sollen enthält. Wenn alle Hash-Tabellen-Einträge der Vorlage generiert sind wird Vorlage:CustomTemplate aufgerufen.
Vorlage:CustomTemplate bindet daraufhin die Unterseite der Vorlage <Vorlage>/Custom und falls dem Wiki ein Spieleprojekt zugewiesen ist (In diesem Wiki nicht der Fall) zusätzlich <Vorlage>/Custom/<Spieleprojekt> und ist <Vorlage>/Custom/<Spieleprojekt>/Custom ein. In diesen Untervorlagen können Modifizierung an der Hash-Tabelle und der Key-Liste vorgenommen werden. Anschließend werden die Einträge der Hash-Tabelle in der Reihenfolge ausgegeben in der sie in der Key-Liste aufgeführt sind.
Listen modifizieren
Wie im vorhergehenden Abschnitt erklärt werden die Listen auf den Unterseiten der Vorlage individualisiert. Für diesen Zweck gibt es in Kategorie einige vorgefertigte Vorlagen.
- Vorlagen mit Präfix
CT:List: Dienen dazu die Key-Liste zu modifizieren. Speziell für die Verwendung auf den Unterseiten/Customgedacht. Diese Vorlagen bieten sich dafür an die Ausgabereihenfolge der Listeneinträge zu manipulieren. - Vorlagen mit Präfix
CustomTemplate: Dienen in erster Linie dazu eine Vorlage individualisierbar zu machen und Hash-Tabellen-Liste aber auch Key-Liste aufzubauen. Diese Vorlagen bieten sich dafür an die Hash-Tabellen-Liste um weitere Einträge zu erweitern.
Außerdem können die beiden Listen direkt modifiziert werden. Die Key-Liste wird in einer Variable gespeichert, die Hash-Tabellen-Liste in einer Hash-Tabelle. Der Name der Variable bzw. Hash-Tabelle kann über Vorlage:CT:List:GetName ermittelt werden. Anschließend können alle Funktionen von mw:Extension:Variables und mw:Extension:HashTables verwendet werden um die listen zu manipulieren.
Im Übrigen stehen auf den Custom-Unterseiten sogar die Parameter zur Verfügung, die an die eigentliche Vorlage übergeben wurden. Diese können über eine weitere Hash-Tabelle erlangt werden deren Name durch den Parameter ParamsHash von Vorlage:CustomTemplate an die Custom-Unterseiten übergeben wird. So ist es z.B. möglich einen an die Vorlage übergebenen Parameter Name durch {{#hashvalue:{{{ParamsHash}}} |Name}} zu erlangen.
Anwendung in der Praxis
Die meisten Vorlagen die mit dieser Technik ausgestattet sind, sind Artikeltyp-Vorlagen. Diese Vorlagen bieten im wesentlichen Übersichtstabellen die durch übergebenen Parameter erhaltenen Informationen darstellen. Die Hash-Tabellen-Liste enthält in diesem Fall die einzellnen Tabellenzeilen dieser Übersichtstabellen. Somit ist es möglich die Reihenfolge der Tabellenzeilenausgabe zu ändern oder ganz neue Informationen darzustellen.