Benutzer:Sammy/Sandkasten/3

Aus GuildWiki
Wechseln zu:Navigation, Suche




Diese Vorlage ist gedacht zur Vorschaltung vor die Nicholas-Datenbank, momentan untergebracht in Benutzer:Sammy/Sandkasten/2.
Übergeben werden können folgende Parameter:

  • optionen=
  1. aktuellermontag
    Gibt den aktuellen Nicholas-Montag in der Form dd.mm.yyyy zurück. Alle anderen Parameter werden ignoriert.
  • datum=
  1. dd.mm.yyyy
    Das Datum eines Nicholas-Standortwechsel-Tages in der Form dd.mm.yyyy.
  2. current
    Ist gleichbedeutend mit dem Datum des aktuellen Nicholas-Montages.
  3. Parameter ungesetzt
    Wenn der Parameter leergelassen oder erst gar nicht gesetzt wird, ist dies gleichbedeutend mit dem Wert "current".
  • angabe=
  1. gegenstand - Der Name des gesammelten Gegenstandes im Singular.
  2. plural - [optional] Der Name des gesammelten Gegenstandes im Plural. (Ist der Wert beim betreffenden Eintrag nicht gesetzt, wird der Wert von gegenstand genommen.)
  3. menge - Die Anzahl Gegenstände, die zum Eintauschen eines Geschenkes benötigt werden.
  4. anzahl - Gleichbedeutend mit menge.
  5. dialog - Nicholas' Dialog.
  6. kartenname - Der Name der Bilddatei, welche die Karte und den Weg zu Nicholas darstellt.
  7. karten-name - Gleichbedeutend mit kartenname.
  8. gebietsname - Der Name des Artikels des Gebietes, in welchem Nicholas steht.
  9. kartenbeschreibung - [optional] Ein Alternativtext für den Titel des Gebietes im Gebietslink. (Ist der Wert beim betreffenden Eintrag nicht gesetzt, wird der Wert von gebietsname genommen.)
  10. extkartenbeschreibung - [optional] Ein Alternativtext für die Beschreibung der Karte, anstatt von kartenbeschreibung. (Ist der Wert beim betreffenden Eintrag nicht gesetzt, wird der Wert von kartenbeschreibung genommen.)

Erklärung des Codes:

{{#if: {{{optionen|}}} |                                  // Sind Optionsparameter übergeben worden?
|                                                         // Wenn nein:
    {{#ifexpr:                                            // Wenn Parameter "datum" nicht gesetzt ist oder den Wert "aktuell" hat:
        {{#if: {{{datum|}}} | 1 | 0}} = 0
        or {{#ifeq: {{{datum|}}} | aktuell | 0 | 1}} = 0
                                                          // Rufe dich selbst auf mit dem aktuellen Montag (ermittelt über Selbst-
                                                          //     aufruf mit Parameter "optionen=aktuellermontag") als Datum
    | {{{{PAGENAME}}|datum={{{{PAGENAME}}|optionen=aktuellermontag}}|angabe={{{angabe|}}}}}
                                                          // Wenn das Datum feststeht:
    | {{#switch: {{{angabe|}}}                            // Überprüfe Parameter "angabe" auf Wertegültigkeit:
        | #default = PARAMETERFEHLER: "angabe" ENTHÄLT UNGÜLTIGEN WERT // Parameter "angabe" hat keinen vorgesehenen Wert
                                                          // Alternative Parameternamen
        | anzahl = {{{{PAGENAME}}|datum={{{datum|}}}|angabe=menge}}
        | karten-name = {{{{PAGENAME}}|datum={{{datum|}}}|angabe=kartenname}}
        | karten-beschreibung = {{{{PAGENAME}}|datum={{{datum|}}}|angabe=kartenbeschreibung}}
                                                          // Wenn "plural" beim entsprechenden Eintrag nicht gesetzt ist, nimm
        | plural =                                        //     "gegenstand".
            {{#if: {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=plural}}
            | {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=plural}}
            | {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=gegenstand}}
            }}
                                                          // Wenn "kartenbeschreibung" beim entsprechenden Eintrag nicht gesetzt
        | kartenbeschreibung =                            //     ist, nimm "gebietsname".
            {{#if: {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=kartenbeschreibung}}
            | {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=kartenbeschreibung}}
            | {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=gebietsname}}
            }}
                                                          // Wenn "extkartenbeschreibung" beim entsprechenden Eintrag nicht gesetzt
        | extkartenbeschreibung =                         //     ist, nimm "kartenbeschreibung".
            {{#if: {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=extkartenbeschreibung}}
            | {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=extkartenbeschreibung}}
            | {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe=kartenbeschreibung}}
            }}
        | gegenstand                                      // Gültige Werte, die einfach durchgereicht werden.
        | menge
        | dialog
        | kartenname
        | gebietsname =
            {{Benutzer:Sammy/Sandkasten/2|datum={{{datum|}}}|angabe={{{angabe|}}}}}
        }}
    }}
}}
{{#if: {{{optionen|}}}                                    // Sind Optionsparameter übergeben worden?
| {{#switch: {{{optionen|}}}                              // Wenn ja: Überprüfe Parameter "optionen".
    | aktuellermontag =                                   // Wenn "optionen=aktuellermontag" gib aktuellen Nicholas-Montag zurück.
        {{#switch: {{#time: w | {{CURRENTTIMESTAMP}}}}    // Überprüfung von Wochentag als numerischer Wert (Sonntag = 0):
        | 0 = {{#time: d.m.Y | {{CURRENTTIMESTAMP}} 6 days ago}} // Sonntag (0)
        | 1 =                                                    // Montag (1)
            {{#ifexpr: {{#time: G | {{CURRENTTIMESTAMP}}}} >= 15 // Wenn es nach 15 Uhr (UTC) ist -
            | {{#time: d.m.Y | {{CURRENTTIMESTAMP}}}}            // dann nimm heute,
            | {{#time: d.m.Y | {{CURRENTTIMESTAMP}} 1 week ago}} // ansonsten den Montag vor einer Woche.
            }}
                                                                 // Für alle übrigen Tage: Nimm einfach den letzten Montag.
        | #default = {{#time: d.m.Y | {{CURRENTTIMESTAMP}} {{#expr: {{#time: w | {{CURRENTTIMESTAMP}}}} - 1}} days  ago}}
        }}
    }}
}}