Hilfe:Variablen
Generelles
Im GenWiki wird der Begriff Variablen in zwei unterschiedlichen Zusammenhängen verwendet:
- einerseites dienen fest programmierte Variablen ("Magische Worte") in der zu Grunde liegenden Software MediaWiki dazu, bestimmte, sich veränderliche Werte - wie das aktuelle Datum oder die Artikelanzahl - in Artikel einzufügen. Ebenso wie Vorlagen werden diese Variablen eingesetzt, indem man sie in doppelte geschweifte Klammern fasst. In dieser Beschreibung werden werden sie im weiteren Standard-Variable genannt.
- andererseits können in Artikeln eigene Variable definiert und eingesetzt werden.
Übersicht über verwendbare Standard-Variable
- Achtung
- Wegen des intensiven Gebrauchs von Caches (Zwischenspeicher) auf der Server- und der Benutzerseite (Client), kann es durchaus dazu kommen, dass die Variablenwerte nicht absolut aktuell sind, sondern vom Zeitpunkt der letzten Erstellung des Artikels stammen und seitdem aus einem der Caches so ausgeliefert worden sind. Sollte der "Verdacht" bestehen, dass die Werte nicht aktuell sind, hilft meist, über die Aufrufadresse (URL) eine Aktualisierung zu erzwingen. Dazu wird manuell an die Aufrufadresse des Artikels einmalig ?action=purge angehängt und der Artikel erneut aufgerufen.
Syntax | Bedeutung | aktueller Wert | existiert seit MediaWiki-Version |
---|---|---|---|
Datum und Zeit | |||
{{CURRENTYEAR}} | heutiges Jahr | 2024 | |
{{CURRENTMONTH}} | heutiger Monat (Zahl) | 11 | |
{{CURRENTMONTHNAME}} | heutiger Monat (Name) | November | |
{{CURRENTMONTHNAMEGEN}} | heutiger Monatsname im Genitiv | November | |
{{CURRENTMONTHABBREV}} | heutiger Monatsname abgekürzt | Nov. | 1.5 |
{{CURRENTWEEK}} | heutige Woche (Zahl) | 48 | |
{{CURRENTDAY}} | heutiger Tag | 27 | |
{{CURRENTDAY2}} | heutiger Tag (immer zweistellig) | 27 | 1.6 |
{{CURRENTDAYNAME}} | heutiger Wochentag | Mittwoch | |
{{CURRENTDOW}} | heutiger Wochentag (Zahl) | 3 | |
{{CURRENTTIME}} | momentane Uhrzeit (24 Stunden, Format HH:mm) | 04:23 | |
{{CURRENTHOUR}} | momentane Stunde (24 Stunden, zweistellig) | 04 | |
{{CURRENTTIMESTAMP}} | momentaner Zeitpunkt (Format YYYYMMDDHHmmss) | 20241127042321 | 1.7 |
Technische Daten zum Wiki | |||
{{SITENAME}} | Name des Wikis | GenWiki | |
{{CURRENTVERSION}} | Die Version der MediaWiki-Software in diesem Wiki | 1.39.6 | 1.7 |
{{CONTENTLANG}} | Die Standardsprache in diesem Wiki | de | 1.7 |
Wiki-Statistiken | |||
{{NUMBEROFARTICLES}} | Anzahl von Artikeln | 249.204 | |
{{NUMBEROFPAGES}} | Anzahl aller Seiten | 532.467 | 1.7 |
{{NUMBEROFFILES}} | Anzahl hochgeladener (Medien-)Dateien (insbesondere für wiki-commons) | 2.731 | 1.5 |
{{NUMBEROFEDITS}} | Anzahl aller Seitenbearbeitungen | 2.464.240 | 1.10 |
{{NUMBEROFUSERS}} | Anzahl mindestens einmal angemeldeter Benutzer | 16.125 | 1.7 |
{{NUMBEROFACTIVEUSERS}} | Anzahl aktiver Benutzer (vgl. Spezial:Statistik) | 96 | 1.15 |
{{NUMBEROFADMINS}} | Anzahl der Mitglieder in der Gruppe sysop (Systemoperatoren) | 20 | 1.7 |
{{PAGESINCAT:Hilfe}} | Anzahl von Artikeln und Unterkategorien in der anzugebenden Kategorie (Hier: beispielhaft in der "Hilfe") | 9 | 1.13 |
{{NUMBERINGROUP:sysop}} | Anzahl von Benutzern in einer anzugebenden Benutzergruppe (Hier: beispielhaft die Gruppe der Systemoperatoren) | 20 | |
{{PAGESINNS:0}} | Anzahl von Seiten (einschließlich Weiterleitungen Begriffserklärungen) im Namespace mit der anzugebenden Nummer (Hier: beispielhaft der Artikelnamensraum, Index 0); nur verwendbar wenn "teure" Parserfunktionen aktiviert sind (im allgemeinen nicht) | Vorlage:PAGESINNS:0 | 1.7 |
Artikelinformationen | |||
{{PAGENAME}} | Artikelname; {{PAGENAMEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{PAGENAME:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Variablen | |
{{FULLPAGENAME}} | Artikelname mit Namespace; {{FULLPAGENAMEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{FULLPAGENAME:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Hilfe:Variablen | 1.6 |
{{BASEPAGENAME}} | Artikelname ohne Namespace und ohne gegebenenfalls letzter Subpage-Ebene (Aus "Portal:Artikel/Teil/Stelle" wird zum Beispiel "Artikel/Teil"); {{BASEPAGENAMEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{BASEPAGENAME:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Variablen | 1.7 |
{{SUBPAGENAME}} | Letzte Subpage-Ebene des Arikelnamens (Aus "Portal:Artikel/Teil/Stelle" wird zum Beispiel "Stelle"); {{SUBPAGENAMEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{SUBPAGENAME:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Variablen | 1.6 |
{{SUBJECTPAGENAME}} | Namespace und Titel des zu dieser Seite gehörenden Inhaltsartikels (interessant z.B. für Diskussionsseiten); {{SUBJECTPAGENAMEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{SUBJECTPAGENAME:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Hilfe:Variablen | 1.7 |
{{TALKPAGENAME}} | Namespace und Titel des zu dieser Seite gehörenden Diskussionsartikels (interessant z.B. Verweis auf die dazugehörige Diskussionsseite); {{TALKPAGENAMEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{TALKPAGENAME:Titel}} auf einen beliebigen anstelle, des aktuellen Artikels anwendbar | Hilfe Diskussion:Variablen | 1.7 |
{{NAMESPACE}} | Name des aktuellen Namespaces; {{NAMESPACEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{NAMESPACE:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Hilfe | |
{{SUBJECTSPACE}} oder {{ARTICLESPACE}} | Name des zum aktuellen Artikel zugehörigen Inhalts-Namespace (z.B. auf einer Diskussionseite); {{SUBJECTSPACEE}} bzw. {{ARTICLESPACEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{SUBJECTSPACE:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Hilfe | 1.7 |
{{TALKSPACE}} | Name des zum aktuellen Artikel zugehörigen Diskussions-Namespace (z.B. zum Verlinken auf eine Diskussionsseite); {{TALKSPACEE}} in der Form, dass es als URL-Teil verwendet werden kann; ab Version 1.15 auch in der Form {{TALKSPACE:Titel}} auf einen beliebigen, anstelle des aktuellen Artikels anwendbar | Hilfe Diskussion | 1.7 |
{{REVISIONID}} | (über alles Artikel des gesamten Wikis eindeutige) Nummer dieser Artikelversion | 908472 | 1.5 |
{{REVISIONDAY}} | Datum der Bearbeitung dieser Artikelversion | 8 | 1.8 |
{{REVISIONDAY2}} | Datum der Bearbeitung dieser Artikelversion (zweistellig) | 08 | 1.8 |
{{REVISIONMONTH}} | Monat der Bearbeitung dieser Artikelversion (zweistellig ab Version 1.17) | 03 | 1.8 |
{{REVISIONYEAR}} | Jahr der Bearbeitung dieser Artikelversion | 2011 | 1.8 |
{{REVISIONTIMESTAMP}} | Zeitpunkt der Bearbeitung dieser Artikelversion (Format YYYYMMDDHHmmss) | 20110308161830 | 1.8 |
{{REVISIONUSER}} | Bearbeiter (Benutzername) dieser Artikelversion | Baumbuwegen | 1.15 |
{{PAGESIZE:Hilfe:Variablen}} | Umfang des anzugebenden Artikels in Byte (aufwändig!) (Hier: Beispielsweise dieser Artikel) | 17.565 | 1.13 |
{{PAGESIZE:Hilfe:Variablen|R}} | Umfang anzugebenden Artikels in Byte ohne Trennzeichen (aufwändig!) (Hier: Beispielsweise dieser Artikel) | 17565 | 1.13 |
Die Anzeige des Artikels beeinflussend | |||
{{DISPLAYTITLE:neuer Titel}} | Setzt die Anzeige (!) des Artikeltitels auf den angegebenen Text, z.B. für Titel, die mit einem Kleinbuchstaben beginnen; muss über die Systemvariable $wgAllowDisplayTitle aktiviert sein; standardmäßig deaktiviert bis 1.10, danach standardmäßig aktiviert | (keine eigene Anzeige) | 1.7 |
{{DEFAULTSORT:Sortierwert}} | setzt für alle im Artikel angegebenen Kategorien den Sortierschlüssel auf Sortierwert, so dass dieser nicht bei jeder Kategorienangabe separat aufgeführt werden muss. | (keine eigene Anzeige) | 1.10 |
- Achtung
- Bei allen Standardvariablen, denen Artikel-Namen als Parameter übergeben werden können, können Titel, die "spezielle Zeichen" enthalten, zu merkwürdigen Effekten führen. Das betrifft Zeichen wie das einfache Hochkomma "'" oder den Strern "*".
Einsatz eigener Variablen
Durch die Einbindung der Erweiterung "Variables"[1] von Rob Adams, Tom Hempel and Daniel Werner können von den Autoren in ihren Artikeln jetzt auch eigene Variablen definiert und eingesetzt werden. Somit können in einem Artikel wiederkehrende Werte (der Familienname, die Ortsbezeichnung, die passende GOV-ID) an einer Stelle des Artikel-WikiTextes mit einer eigenen Variablen verbunden werden und an mehreren Stellen dann mit einem "Platzhalter" eingefügt werden. Auf diese Weise können nachträgliche Änderungen stabiler und schneller ausgeführt werden und auch automatisiert Ergänzungen an ganzen Artikelgruppen vorgenommen werden. Bereits jetzt profitieren Vorlagen (vgl. z.B. Vorlage:Ort oder Vorlage:Familienname) entsprechend davon.
Diese Technik kann aber auch frei in eigenen Artikeln verwendet werden.
Gültigkeit der Variablen
Die Gültigkeit, der "Lebensraum" der einmal definierten Variablen beschränkt sich zunächst auf den Artikel, in dem die Definition stattfand. In anderen Artikeln kann nur durch die Definition einer (ggf. gleichnamigen) Variablen im dortigen WikiText mit dieser gearbeitet werden. Somit kann auch in eingebundenen Vorlagen nicht direkt mit Variablenwerten durch den "Aufruf" der Variablen selbst gearbeitet weden, sie müssen als Parameter übergeben werden (siehe weiter unten).
Variablen, genauer: deren aktuellen Werte, können an Vorlagen übergeben werden (sie weiter unten).
Umgekehrt gilt allerdings: Bei der Einbindung eines Textbaustein-Artikels {{BausteinArtikel}} in den WikiText eines Artikels werden alle im Baustein vorgenommenen Variablendefinitionen übernommen, das heißt: die Variablen sind verfügbar.
Prinzip des Einsatzes
Jede Variable wird in einem Artikel durch die erste Wertzuweisung mit ihrem Namen und ihrem Wert angelegt. Später im Text vorgenommene Wertzuweisungen ändern nur noch den Wert.
Auch wenn (wie weiter unten der Vollständigkeit halber beschrieben) technisch kompliziertere Einsatzmöglichkeiten denkbar sind, besteht die wohl häufigste und einfachste Verwendung nur aus zwei Schritten:
- Anlegen der Variablen mit gleichzeitiger Wertzuweisung
- Mehrfacher Eintrag der Variablen im folgenden WikiText desselben Artikels, wo in der Anzeige oder bei einer Parameterübergabe an Vorlagen bzw. Erweiterungen der Wert verwendet werden soll
Anlegen der Variablen und erste Wertzuweisung
Soll im folgenden Artikeltext mehrfach der Wert einer Variablen BeispielVar verwendet werden, so ist diese vorher im Artikeltext anzulegen und mit einem ersten Wert (hier: MeinWert) zu versehen. Dies geschieht mit dem (in der späteren Artikel-Anzeige unsichtbaren) Ausdruck
{{#vardefine:BeispielVar|MeinWert}}
Änderung der Wertzuweisung an eine Variable
Eine erneute Verwendung der Variablendefinition mit einem anderen Wert
{{#vardefine:BeispielVar|MeinNeuerWert}}
erkennt, dass diese Variable bereits existiert und aktualisiert nur den Wert.
An einer bestimmten Stelle im WikiText hat die Variable immer den Wert von ihrer letzten Zuweisung (Textabarbeitung "von oben nach unten").
Verwendung des aktuellen Variablenwertes
- Achtung
- Die Schreibweise des Variablennamens muss im folgenden exakt so wie in der Definition sein (Groß-/Kleinbuchstaben)!
Normaler Text
An den Stellen, wo der Wert der Variablen im Text erscheinen soll, wird eingefügt:
{{#var:BeispielVar}}
WikiText | Anzeige |
---|---|
Die Variable BeispielVar hat gerade den Wert {{#var:BeispielVar}} | Die Variable BeispielVar hat gerade den Wert MeinWert |
Einsatz in Vorlagen
Hier gibt es eigentlich keine Besonderheiten, nur die Schreibweise mag ein wenig verwirren, daher ein konkretes Beispiel:
Soll der Vorlage Vorlage1 der Wert der Variablen BeispielVar übergeben werden, sieht der WikiText so aus:
{{Vorlage1|{{#var:BeispielVar}}}}
oder, wenn der Parameter den Namen Par3 trägt:
{{Vorlage1|Par3={{#var:BeispielVar}}}}
Spezielle Form mit Standardwert
In bestimmten Verwendungs-Situationen[2] kann man nicht sicher sein, ob die Variable vorher bereits definiert wurde. Dann kann ein voreingestellter Standardwert hilfreich sein, der wie ein Vorlagenparameter mitgegeben wird:
{{#var:BeispielVar|Standardwert}}
Einsatz als Wertoption bei speziellen Erweiterungen
Für Erweiterungen, die in der so genannten Tag-Schreibweise Parameter übernehmen können, z.B. bei der Einbindung von GeoGen-Grafiken und dem dort verwendeten Tag lastname-map:
<lastname-map>Meier</lastname-map>
funktioniert der einfache Ersatz des Familiennamens durch den Aufruf der mit {{#vardefine:FamNam|Meier}} vorher definierten Variablen FamNam in der Form
<lastname-map>{{#var:FamNam}}</lastname-map>
leider nicht ! Hier hilft folgende Ersatzschreibweise für die Erweiterung:
{{#tag:lastname-map|{{#var:FamNam}}}}
die von der Parserfunktion {{#tag|Tagbezeichner|Parameter...}} Gebrauch macht. Dies wurde zum Beispiel in der Vorlage:Familienname aktiv eingesetzt und kann dort im WikiText nachvollzogen werden.
Einsatz in bedingten Ausdrücken (Parserfunktionen)
Im technisch fortgeschrittenen Gebrauch können Variablen und ihre Werte auch in bedingten Ausdrücken bei Parserfunktionen eingesetzt werden. Allerdings ist hierbei zu berücksichtigen, dass alle Variablenwerte im Artikel vor jeglicher logischen Verzweigung komplett berechnet werden und erst dann die Prüfungen ausgeführt werden. Beispielsweise wird im folgenden Ausdruck
{{#ifexpr:LogischerAusdruck| {{#vardefine:a|b}}| {{#vardefine:a|c}} }}
die Variable a immer den Wert c bekommen, unabhängig vom aktuellen Wert der Bedingung Logischer Ausdruck. Denn es werden immer beide Zuweisungen ausgewertet und ausgeführt werden und die letzte Zuweisung "gewinnen".
Der gewünschte Effekt wird hier zum Beispiel über folgende Schreibweisen erreicht, die die Auswertung der Bedingung in die Variablendefinition legt:
{{#vardefine:a | {{#ifexpr:LogischerAusdruck|b|c}} }}
- ↑ Die englische Original-Dokumentation für Installation und Einsatz dieser MediaWiki-Erweiterung findet sich hier
- ↑ Dies kann zum Beispiel passieren, wenn mit dem oben erwähnten Textbausteinverfahren Variablen und ihre Werte "übernommen" werden sollen und dieser Textbaustein später unabgestimmt geändert wurde.