Hilfe:Dynamische Vorlagenerweiterung

Aus RPG-Dev-Basis
Wechseln zu: Navigation, Suche
  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

Entwickler-Doku
Funktionsweise von RPG-Dev-Wiki
Individualisierung
Dynamische Vorlagenerweiterung
Neue Lebewesen
Weiterentwicklung der Basis
Richtlinien
ToDo-Liste
Einführung in die Programmierung
Anwender-Doku

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.

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.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
RPG-Dev-Wiki
RPG-Dev-Basis
Werkzeuge