Vorlage:Geschichtsseite Kosch/Doku

Aus KoschWiki
Zur Navigation springen Zur Suche springen

Die ist die Dokumentation für die Vorlage:Geschichtsseite Kosch. Sie wird dort ebenfalls angezeigt, weil die Dokumentation wie eine eigene Vorlage funktioniert und daher einfach eingebunden werden kann.

Was macht diese Vorlage?

Mit dieser Vorlage werden zu einer Epoche die jeweiligen Ereignisse und Briefspieltexte inklusive Gliederung angezeigt. Sie ist ein Koscher Ersatz für Vorlage:Geschichtsseite.

Wesentliche Unterschiede:

  • Die Variablen werden anders definiert.
  • Die Zeitleiste wird weggelassen (da das im KoschWiki anders gemacht wird).
  • Die Anzeige der Links zu den relevanten Zeitraumübersichten wird weggelassen (da das im KoschWiki anders gemacht wird).
  • Die Anzeige des Parameters "Text" wird weggelassen (da das im KoschWiki anders gemacht wird).
  • Kategorie und Zeitindex werden - ohne Auswirkung auf die Funktion - erst am Ende gesetzt (analog zur Vorlage:Zeitraumübersicht Kosch für bessere Übersichtlichkeit).
  • Briefspieltexte, die die Epoche erwähnen, werden ebenfalls abgefragt.
  • Sollte es falsch gesetzte Attribute geben, werden diese separat angezeigt - zusammen mit dem Hinweis, sie zu ändern und wie das geht.
  • Sollte es zu keinem Treffer kommen, bleibt der jeweilige Teil der Abfrage unsichtbar.

Die Vorlage

  • ruft die Vorlage Vorlage:Abfrage Chronik auf
  • listet die Ergebnisse von drei Abfragen auf
  • ruft die Vorlage Vorlage:Abfrage Briefspieltexte Kosch auf
  • listet die Ergebnisse von drei Abfragen auf, wobei nach dem aventurischen Datum aufsteigend sortiert wird und die Abfragen auf die letzten 120, 12, bzw. 6 Texte beschränkt werden.
  • Mit Hilfe von weiteren Parametern können sowohl die Sortierreihenfolge als auch die Anzahl der Texte angepasst werden.

Wie verwendet man diese Vorlage?

Die Vorlage verwendet Parameter, welche mit Standardwerten versehen werden, falls man nichts weiter angibt.

Im einfachsten Fall reicht es also aus, folgenden Code in eine Seite einzufügen:

{{Geschichtsseite Kosch}}

Ein Beispiel für den umgekehrten Extremfall, dass alle Parameter angegeben werden:

{{Geschichtsseite Kosch|DatumVon=590|DatumBis=608|Maximale Anzahl Texte=150|Maximale Anzahl Briefspieltext=24|Maximale Anzahl Fehler=12|Sortierung=aufsteigend}}

  • Man kann jeden Parameter unabhängig von den anderen verwenden, also auch nur einen oder zwei angeben und den Rest weglassen.
  • Es spielt keine Rolle, in welcher Reihenfolge man die Parameter angibt.

Parameter:

  • DatumVon - Startdatum (Grenze inklusive). Standardwert ist "{{PAGENAME}}". Im GGP-Wiki werden bei der Angabe "1.1.<JAHR>" nicht Ereignisse und Briefspieltexte abgefragt, die irgendwann in einem Jahr geschehen sind.
  • DatumBis - Enddatum (Grenze inklusive). Standardwert ist "5.13.{{PAGENAME}}". Beide Parameter müssen aus praktischen Gründen befüllt werden, weil die Standardwerte nie sinnvoll sind (und es keine sinnvolle alternative Befüllung gibt).
  • Maximale Anzahl Texte - maximale Anzahl der Briefspieltexte, in denen das Attribut "Briefspiel-Zeitindex ist::" gesetzt wurde und dieses in den abgefragten Zeitraum fällt. Standardwert beträgt 120. Gibt es mehr als diese maximale Anzahl von Briefspieltexten, erscheint in der letzten Zeile der Tabelle unten rechts ein Link auf (… weitere Ergebnisse). Die Idee dahinter: In vielen Fällen reichen 120 Einträge aus. Liegt die Anzahl der gefundenen Briefspieltexte knapp darüber, ist es praktisch, die Grenze anpassen zu können. Ohne eine automatische Grenze wäre es gefährlich, die Vorlage auszuprobieren, weil das Ergebnis dann aus Hunderten von Briefspieltexten bestehen könnte, was die Seite sehr lang machen und deren Ladezeit ernorm in die Höhe treiben würde.
  • Maximale Anzahl Briefspieltext - analog zu Maximale Anzahl Texte, nur dass hier das Attribut "Briefspieltext mit::" abgefragt wird und die maximale Anzahl der Ergebnisse auf 12 beschränkt wird.
  • Maximale Anzahl Fehler - analog zu Maximale Anzahl Texte, nur dass hier alle anderen möglichen Attribute abgefragt werden (deren Setzung immer ein Fehler ist) und die maximale Anzahl der Ergebnisse auf 6 beschränkt wird.
  • Sortierung Optionen: asc/desc/aufsteigend/absteigend - Standardwert ist "asc". Damit wird eingestellt, ob die Suchergebnisse nach aventurischer Zeit aufsteigend oder absteigend sortiert werden sollen und ob gleichzeitig durch den Filter die ältesten oder jüngsten Texte ausgegeben werden sollen. Dabei sind asc und aufsteigend bzw. desc und absteigend gleichwertig.

Einsatzzweck

In erster Linie in den Artikeln zu einer Epoche.

Der Artikel Magierkriege dient als Beispiel dafür, wie die Vorlage eingebunden wird und mehrere der möglichen Parameter gesetzt werden.

Technische Dokumentation

Absolut unwichtig für normale Benutzer, nur relevant für Vorlagen-Programmierer. Daher folgt reichlich technisches Vokabular!

Die Vorlage besteht grob aus zwei Teilen:

  • Definition von Variablen, die Abfragen enthalten
  • bedingte Anzeige der Ergebnisse

Zunächst wird eine Reihe von Variablen definiert, die für die folgenden Abfragen relevant werden.

  • Für DatumVon wird der Wert des gleichnamigen Parameters geprüft. Ist dieser leer, wird "{{PAGENAME}}" verwendet. Ansonsten wird der Wert des Parameters übernommen, wobei führende Nullen aus jedem Vorkommen von "1." entfernt werden. (Das spielt später noch eine Rolle.)
  • Für DatumBis wird der Wert des gleichnamigen Parameters geprüft. Ist dieser leer, wird "5.13.{{PAGENAME}}" verwendet. (Dass dies nicht äquivalent zur vorangegangenen Variable geschieht, liegt an einer Setzung aus dem GGP-Wiki. Für ein ganzes Jahr muss "<JAHR>" / "5.13.<JAHR>" verwendet werden, weil Ereignisse, die irgendwann im Jahr geschehen, dem 1.1. vorangestellt werden und damit nicht abgefragt werden, wenn der Zeitraum mit dem 1.1. eines Jahres beginnt.) Ansonsten wird der Wert des Parameters übernommen, wobei führende Nullen aus jedem Vorkommen von "5." entfernt werden. (Das spielt später noch eine Rolle.)

Nun folgen zwei weitere Variablen, die für diejenigen Abfragen relevant sind, die nur mit einer Jahresangabe (ohne Tage oder Monate) funktionieren.

  • Für Jahr wird die Angabe hinter dem letzten Punkt von DatumVon genommen.
  • Für Ende wird die Angabe hinter dem letzten Punkt von DatumBis genommen.

Jetzt werden die Variable DatumVon über eine switch-Anweisung erneut definiert. Hierbei wird der Wert der Kombination von DatumVon und DatumBis verwendet:

  • 1.1.Jahr5.13.Ende - verwende Jahr (ohne führende 1en, so dass tatsächlich ein ganzes Jahr ausgewertet wird)
  • 1.1.JahrEnde - verwende Jahr (ohne führende 1en, so dass tatsächlich ein ganzes Jahr ausgewertet wird)
  • in jedem anderen Fall: DatumVon

DatumBis wird ebenfalls erneut definiert. Hier reicht nach der Setzung gerade jedoch eine einfache Fallunterscheidung. Falls die Kombination aus DatumVon und DatumBis der Kombination aus Jahr und Ende entspricht, dann setze DatumBis auf 5.13.Ende. Ansonsten behalte den bisherigen Wert von DatumBis.

Insgesamt setzt das die folgende Logik um: Falls (1.1.JAHR A oder JAHR A) UND (5.13.JAHR B oder JAHR B), dann auf JAHR A und 5.13.JAHR B umsetzen.

Die Von- und Bis-Angaben müssen für die Zeitangaben in Briefspieltexten (B) und Chronikereignissen (C) in das jeweils verwendete Format konvertiert werden. Ansonsten klappen Abfragen mit Eingrenzung des Zeitraums nicht.

Dazu werden verschiedene Funktionen des Datummoduls (Modul:Datum) aufgerufen.

  • VonC und VonB haben DatumVon als Basis. Hier wird anders umgerechnet als in der ursprünglichen Vorlage (eine Sekunde früher!), weil ansonsten ein Text, der genau auf Mitternacht am 1. Praios datiert ist, nicht mit abgefragt wird.
  • BisC und BisB haben DatumBis als Basis.

Damit sind alle benötigten Zeitangaben in den verschiedenen Formaten vorhanden und stehen für die eigentlichen Abfragen zur Verfügung.

Danach werden drei Variablen namens Schlacht, Turnier, Ereignis definiert, deren Inhalt über einen Aufruf der Vorlage Vorlage:Abfrage Chronik bestimmt wird. Der Zeitraum wird auf den Wert der Variablen "VonC" und "BisC" eingegrenzt, der Typ entsprechend der Variable. (Wie bei der Vorlage:Zeitraumübersicht Kosch könnten noch fünf weitere Typen von Chronikereignissen abgefragt werden. Das wären für eine Epoche jedoch zu viele, um sie anzuzeigen.)

Falls mindestens eine der drei Variablen mit Inhalt gefüllt wurde, es also mindestens einen Treffer gab, wird entsprechend die Leiste mit den Knöpfen gesetzt, mit denen die Art der Ereignisse vom jeweiligen Leser flexibel aus- und wieder eingeblendet werden kann.

Falls es mindestens ein entsprechendes Ereignis gab, wird das Ergebnis ausgegeben zusammen mit der entsprechenden Überschrift zweiter Ordnung sowie der Formatierung, die notwendig ist, um die Ereignisse je nach Art ausblenden zu können. Da das Ergebnis der Abfrage Chronik auch ohne Treffer nicht leer ist (Zeilenumbruch), wird nicht die Befüllung der Variablen an sich abgefragt, sondern die Position der Angabe "30px", da jeder Treffer mindestens einmal diesen Text enthält. (Das ist ein Teil der Befüllung, der durch die Vorlage:Abfrage Chronik Item geschieht. Sollte sich deren Inhalt ändern, muss die Vorlage entsprechend angepasst werden.)

Schließlich werden drei Variablen namens Texte, Erwähnungen und Unrest definiert, deren Inhalt jeweils über einen Aufruf der Vorlage Vorlage:Abfrage Briefspieltexte Kosch bestimmt wird. Für den Parameter Abfrage wird dabei gefiltert auf das Attribut "Briefspiel-Zeitindex ist::" zwischen "VonB" und "BisB", "Briefspieltext mit::" mit dem Namen des Artikels, alle anderen besonderen Attribute mit dem Namen des Artikels. Im zweiten Fall wird außerdem abgefragt, dass der Briefspieltext selbst außerhalb der Epoche liegt (weil er sonst bereits mit der ersten Abfrage abgedeckt wurde).

Der erste Fall wird durch die Datierung des Briefspieltextes abgedeckt. Der zweite Fall ist das, was in einem Briefspieltext gesetzt werden muss für eine erwähnte Epoche. Entsprechend ist jedes andere Attribut ein Fehler, so dass auf alle anderen Attribute für die Fehlerauswertung abgefragt wird.

Hierbei wird der Wert des Parameters Sortierung ausgewertet - oder asc verwendet, falls dieser nicht gesetzt wurde. Als Begrenzung für die Abfragen wird entweder die Zahl verwendet, die in der Variable Maximale Anzahl Texte, Maximale Anzahl Briefspieltext bzw. Maximale Anzahl Fehler festgelegt wurde, oder 120 (Briefspieltext im angegebenen Zeitraum), 12 (Erwähnung) bzw. 6 (Fehler).

Falls mindestens eine der drei Variablen mit Inhalt gefüllt wurde, es also mindestens einen Treffer insgesamt gab, wird entsprechend die Überschrift zweiter Ordnung Briefspieltexte gesetzt zusammen mit den Knöpfen, mit denen die Anzahl der Ergebnisspalten vom jeweiligen Leser flexibel zwischen eins und drei umgeschaltet werden kann.

Falls es mindestens einen Briefspieltext mit angegebenen Zeitraum, eines Erwähnung oder einen Fehler gab, wird das jeweilige Ergebnis ausgegeben zusammen mit der Formatierung, die notwendig ist, um die Anzahl der Ergebnisspalten verändern zu können. Bei falsch gesetzten Attributen gibt es außerdem noch jeweils eine Überschrift dritter Ordnung, die auf bestehende Fehler hinweist und wie man sie ändern kann.

Anschließend wird die Kategorie:Zeitraumübersicht gesetzt, wobei der Artikel nach dem Wert der Variable VonC einsortiert wird.

Zum Schluss wird das Attribut "Zeitindex ist=" auf den Wert der Variable VonC gesetzt.