News (06 Aug 2024): Das Wiki läuft jetzt auf einem neuen Server. Aufgrund eines Upgrades von PHP mussten die Wiki-Software und die DPL-Erweiterung aktualisiert werden. Bitte meldet Fehler auf der Hauptseiten-Diskussion.

Benutzer:Sammy/Sandkasten/3: Unterschied zwischen den Versionen

Aus GuildWiki
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
(kein Unterschied)

Aktuelle Version vom 6. Januar 2010, 23:34 Uhr




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}}
        }}
    }}
}}