Hilfe:Variablen: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
(Call for Article)
K (Korrektur)
Zeile 2: Zeile 2:
Im GenWiki wird der Begriff '''Variablen''' in zwei unterschiedlichen Zusammenhängen verwendet:
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 [[GenWiki:Vorlagen|Vorlagen]] werden diese Variablen eingesetzt, indem man sie in doppelte geschweifte Klammern fasst. In dieser Beschreibung werden werden sie im weiteren Standard-Variable genannt.
* 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 [[GenWiki:Vorlagen|Vorlagen]] werden diese Variablen eingesetzt, indem man sie in doppelte geschweifte Klammern fasst. In dieser Beschreibung werden sie im weiteren Standard-Variable genannt.
* andererseits können in Artikeln eigene Variable definiert und eingesetzt werden.  
* andererseits können in Artikeln eigene Variable definiert und eingesetzt werden.  



Version vom 1. September 2011, 06:09 Uhr

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 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) 47
{{CURRENTDAY}} heutiger Tag 24
{{CURRENTDAY2}} heutiger Tag (immer zweistellig) 24 1.6
{{CURRENTDAYNAME}} heutiger Wochentag Sonntag
{{CURRENTDOW}} heutiger Wochentag (Zahl) 0
{{CURRENTTIME}} momentane Uhrzeit (24 Stunden, Format HH:mm) 07:16
{{CURRENTHOUR}} momentane Stunde (24 Stunden, zweistellig) 07
{{CURRENTTIMESTAMP}} momentaner Zeitpunkt (Format YYYYMMDDHHmmss) 20241124071602 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 972657 1.5
{{REVISIONDAY}} Datum der Bearbeitung dieser Artikelversion 1 1.8
{{REVISIONDAY2}} Datum der Bearbeitung dieser Artikelversion (zweistellig) 01 1.8
{{REVISIONMONTH}} Monat der Bearbeitung dieser Artikelversion (zweistellig ab Version 1.17) 09 1.8
{{REVISIONYEAR}} Jahr der Bearbeitung dieser Artikelversion 2011 1.8
{{REVISIONTIMESTAMP}} Zeitpunkt der Bearbeitung dieser Artikelversion (Format YYYYMMDDHHmmss) 20110901060933 1.8
{{REVISIONUSER}} Bearbeiter (Benutzername) dieser Artikelversion Joeglobal 1.15
{{PAGESIZE:Hilfe:Variablen}} Umfang des anzugebenden Artikels in Byte (aufwändig!) (Hier: Beispielsweise dieser Artikel) 17.558 1.13
{{PAGESIZE:Hilfe:Variablen|R}} Umfang anzugebenden Artikels in Byte ohne Trennzeichen (aufwändig!) (Hier: Beispielsweise dieser Artikel) 17558 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:

  1. Anlegen der Variablen mit gleichzeitiger Wertzuweisung
  2. 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}} }}



  1. Die englische Original-Dokumentation für Installation und Einsatz dieser MediaWiki-Erweiterung findet sich hier
  2. 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.