Hilfe:Erweiterung »WorldMap«/def-obj
Wiimm hat eine Mediawiki-Erweiterung namens »WorldMap« für dieses Wiki erstellt. Ein Teil dieser Erweiterung verwaltet Eigenschaften von Objekten mit Standort auf der Karte. Objekte sind u.a. Schreine und Türmeen.
Die Eigenschaften werden mit der Funktion {{#def-obj: ... }} auf einer speziellen Seite festgelegt und können auf anderen Seiten mit {{#get-obj: ... }} abgerufen werden. Die Funktion {{#list-obj: ... }} erstellt eine Liste aller definierten Objekte.
Inhaltsverzeichnis
Idee
Mit dem neuen Kartengenerator besteht nun die Möglichkeit, Teil-Karten mit Markierungen in allen Artikeln einzublenden. Nun wäre es schön, wenn man in diesem Teilkarten auf Wunsch auch die Standorte z.B. aller Schreine einblenden könnte. Dazu muss eine Daten-Tabelle für Objekte und Positionen definiert werden. Wäre es nicht praktisch, wenn man allen Wiki-Editoren die Möglichkeit gibt, derartige Listen zu führen und die Daten aus den Listen zu extrahieren?
Genau aus dieser Idee heraus sind die Wiki-Parser-Funktionen #def-obj, #def-obj und #def-obj entstanden.
Parser-Funktion »#def-obj«
Mit der Parser-Funktion »#def-obj« werden Objekte definiert.
Syntax: {{#def-obj: Typ:Name ! Attribut:Wert ... }}
- Typ
- Der Objekttyp zum Namen. Es ist ein freier Name, z.B. »Schrein« oder »Turm«.
- Name
- Der Eigenname des Objektes, z.B. »Zitadelle der Zeit« .
- Attribut=Wert
- Eine Liste von Attributen, die alle durch Ausrufezeichen voneinander getrennt sind.
Name | Beispiel | Bechreibung |
---|---|---|
region | region:Vergessenes Plateaus | Hiermit wird das Gebiet, in dem sich das Objekte befindet, festgelegt. |
pos | pos:R17g | Hiermit wird der Standort eines Objektes als Punkt auf der Karte festgelegt. |
area | area:R17g-r18x | Hiermit wird der Bereich eines Gebietes als rechteckiger Ausschnitt der Karte festgelegt. Diese Alternative zu pos wird nur für Gebiete verwendet. |
info | info:Freier Text. | Ein freier Text, der in der Datenbank abgelegt wird um ihn später auf der Karte anzuzeigen. Der Text darf einfache Wiki-Links enthalten. |
index | index:1 | Ist Index gesetzt, dann wird jedem Namen eine Nummer in Klammern angehängt. So wird z.B. aus »Hyrule« in der Datenbank der Name »Hyrule (1)«. Dieses ist wichtig, da in der Objekt-Datenbank nur eindeutige Namen vorkommen können, aber z.B. Schatztruhen keinen Namen besitzen und stattdessen Gebietsnamen zur Identifizierung verwendet werden. |
Parser-Funktion »#gef-obj«
Mit der Parser-Funktion »#get-obj« werden Attribute von Objekten abgerufen.
Syntax: {{#get-obj: Typ | Name | Attribut }} {{#get-obj: Typ | Name | Attribut | Ersatzwert }}
- Typ
- Der Objekttyp zum Namen.
- Name
- Der Eigenname des Objektes.
- Attribut
- Das Attribut, dessen Wert abgerufen werden soll. Möglich sind: region, pos, area, info
- Ersatzwert
- Wert, der zurückgegeben wird, wenn das Objekt nicht gefunden wurde. Ohne Angabe wird ein leerer Text geliefert.
Parser-Funktion »#list-obj«
Mit der Parser-Funktion »#list-obj« wird eine Liste der definierten Objekte erzeugt:
Syntax: {{#list-obj:FORMAT | Option1=Wert1 | Option2=Wert2 }} {{#list-obj:FORMAT ! Option1:Wert1 ! Option2:Wert2 }}
FORMAT legt das Ausgabeformat fest und die Optionen die Einzelheiten der Ausgabe. Bei einem unbekannten Format wird ein Fragezeichen ausgegeben. Unbekannte Attribute werden stillschweigend ignoriert.
Wichtig ist, dass die einzelnen Attribute durch ein Pipe-Zeichen (»|«) oder durch ein Ausrufezeichen (»!«) voneinander getrennt sind. Beide Zeichen können auch gemischt verwendet werden. Das Ausrufezeichen hat den Vorteil, dass es keine Parameter beim Aufruf von Vorlagen trennt. Anführungszeichen werden nicht benötigt und sollen auch nicht genutzt werden, da alles bis zum nächsten Trennzeichen zum Attribut gehört.
Außerdem kann der Doppelpunkt (»:«) als Alternative zum Gleichheitszeichen (»=«) verwendet werden. Auch dieses vereinfacht die Nutzung mit Vorlagen, bei denen das Gleichheitszeichen eine Sonderbedeutung hat.
Format der Ausgabe
Format | Beschreibung |
---|---|
table | Es werden Tabellen-Zeilen als Wiki-Text ausgeliefert. Mit den Optionen class und region werden die Objekte ausgewählt. Option select legt die Spalten inkl. Reihenfolge fest.
Vorlage:Liste der Objekte nutzt diese Art der Darstellung und erzeugt auch die Tabellen-Umgebung mitsamt Spalten-Köpfen an. |
wikilinks | Für jedes Objekt wird eine Zeile im Format »* [[NAME]]« ausgegeben. Es wird also eine Liste mit WIki-Links erzeugt. Mit den Optionen class und region werden die Objekte ausgewählt. |
count | Anstatt die Objekte auszugeben werden sie gezählt und das Ergebnis als unvormatierte Dezimalzahl ausgegeben. Mit den Optionen class und region werden die Objekte ausgewählt. |
Optionen
Option | Typ | Beispiel | Beschreibung |
---|---|---|---|
class | Filter | class:Schrein | Anstatt alle Objekte anzuzeigen, werden nur Objekte der angegeben Klasse bzw. Gruppe angezeigt. |
region | Filter | region:Hyrule | Anstatt alle Objekte anzuzeigen, werden nur Objekte der angegebens Gebietes angezeigt. region kann mit class kombiniert werden, um z.B. alle Schreine eine Gebiets anzuzeigen. |
select | Format | select:Liste | Komma-separierte Liste mit den Spalten, die in der Tabelle enthalten sind. Dieses Option ist nur für das Format »table« relevant. |
debug | Format | debug:1 | Anstatt der normalen Ausgabe wird eine Text-Ausgabe der übergebeben und erkannten Optionen ausgegeben. |
Option »select«
Regeln zur Definition
- Die neuen Definitionen werden erst mit dem Abspeichern der Seite vollzogen.
- Beim Abspeichern der Seite werden alle Objekte des selben Typs gelöscht. So bleiben nur die neu definierten Objekte erhalten. Das bedeutet auch, dass man Objekte eines Typs nicht auf mehreren verschiedenen Seiten definieren kann.
- Auf einer Seite können mehrere Objekttypen definiert werden.
- Manche Objekttypen sind intern geschützt, so dass sie nur von einer genau festgelegten Seite definiert werden können. Dieser Schutz wird immer dann eingerichtet, wenn die Seite für die Definitionen feststeht.
- Für den Abruf der Daten gibt es keine Einschränkungen.
Bisherige Listen mit Objekt-Definitionen
Die folgende Liste zeigt alle Listen von Definitionen. Die Verwaltung geschieht üblicherweise über eine Vorlage (z.B. Vorlage:Def-Schrein), die dann die Definition durchführt und gleichzeitig einen Tabellen-Eintrag für die optische Anzeige der aufrufenden Seite erzeugt.
- Liste der Bauwerke (geschützt)
- Liste der Feldlager (geschützt)
- Liste der Krogs (geschützt)
- Liste der Gebiete (geschützt)
- Liste der Schatztruhen (geschützt)
- Liste der Schreine (geschützt)
- Liste der Ställe (geschützt)
- Liste der Türme (geschützt)
Der aktuelle Stand der internen Objekt-Datenbank kann durch die »Liste der Objekte« abgerufen werden.