Hilfe:Variablen: Unterschied zwischen den Versionen
Fosndr (Diskussion • Beiträge) K (→Übersicht) |
(Benutzerdefinierte Variablen) |
||
Zeile 1: | Zeile 1: | ||
'''Variablen''' | == Generelles == | ||
Im GenWiki wird der Begriff '''Variablen''' in zwei unterschiedlichen Zusammenhängen verwendet: | |||
== Übersicht == | * 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. | ||
* andererseits können in Artikeln eigene Variable definiert und eingesetzt werden. | |||
== Übersicht über verwendbare Standard-Variable == | |||
{| | {| | ||
|'''Syntax''' | |'''Syntax''' | ||
Zeile 43: | Zeile 47: | ||
|{{PAGENAME}} | |{{PAGENAME}} | ||
|} | |} | ||
== Einsatz eigener Variablen == | |||
Durch die Einbindung der Erweiterung "''Variables''"<ref>Die englische Original-Dokumentation für Installation und Einsatz dieser MediaWiki-Erweiterung findet sich [http://www.mediawiki.org/wiki/Extension:VariablesExtension hier]</ref> 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 [[#Einsatz in Vorlagen|weiter unten]]). | |||
Variablen, genauer: deren aktuellen Werte, können an Vorlagen übergeben werden (sie weiter [[#Übergabe eines Variablenwertes an eine Vorlage|unten]]). | |||
Umgekehrt gilt allerdings: Bei der Einbindung eines Textbaustein-Artikels <nowiki>{{BausteinArtikel}}</nowiki> 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 | |||
<nowiki>{{#vardefine:BeispielVar|MeinWert}}</nowiki> | |||
<!-- Die folgende Zeile erzeugt die Variable für die folgenden Beispiele --> | |||
{{#vardefine:BeispielVar|MeinWert}} | |||
=== Änderung der Wertzuweisung an eine Variable === | |||
Eine erneute Verwendung der Variablendefinition mit einem anderen Wert | |||
<nowiki>{{#vardefine:BeispielVar|MeinNeuerWert}}</nowiki> | |||
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: | |||
<nowiki>{{#var:BeispielVar}}</nowiki> | |||
{| {{Prettytable}} | |||
! WikiText | |||
! Anzeige | |||
|- | |||
| Die Variable BeispielVar hat gerade den Wert <nowiki>{{#var:BeispielVar}}</nowiki> | |||
| Die Variable BeispielVar hat gerade den Wert {{#var:BeispielVar}} | |||
|} | |||
==== 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: | |||
<nowiki>{{Vorlage1|{{#var:BeispielVar}}}}</nowiki> | |||
oder, wenn der Parameter den Namen ''Par3'' trägt: | |||
<nowiki>{{Vorlage1|Par3={{#var:BeispielVar}}}}</nowiki> | |||
==== Spezielle Form mit Standardwert ==== | |||
In bestimmten Verwendungs-Situationen<ref>Dies kann zum Beispiel passieren, wenn mit dem [[#Gültigkeit der Variablen|oben erwähnten]] Textbausteinverfahren Variablen und ihre Werte "übernommen" werden sollen und dieser Textbaustein später unabgestimmt geändert wurde.</ref> 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: | |||
<nowiki>{{#var:BeispielVar|Standardwert}}</nowiki> | |||
==== 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#Erweiterung_Geogen_zum_direkten.2C_dynamischen__Einbinden|GeoGen-Grafiken]] und dem dort verwendeten Tag lastname-map: | |||
<nowiki><lastname-map>Meier</lastname-map></nowiki> | |||
funktioniert der einfache Ersatz des Familiennamens durch den Aufruf der mit <nowiki>{{#vardefine:FamNam|Meier}}</nowiki> vorher definierten Variablen ''FamNam'' in der Form | |||
<nowiki><lastname-map>{{#var:FamNam}}</lastname-map></nowiki> | |||
leider '''nicht !''' Hier hilft folgende Ersatzschreibweise für die Erweiterung: | |||
<nowiki>{{#tag:lastname-map|{{#var:FamNam}}}}</nowiki> | |||
die von der Parser-Funktion <nowiki>{{#tag|Tagbezeichner|Parameter...}}</nowiki> Gebrauch macht. Dies wurde zum Beispiel in der [[Vorlage:Familienname]] aktiv eingesetzt und kann dort im WikiText nachvollzogen werden. | |||
==== Einsatz in bedingten Ausdrücken (Parser-Funktionen) ==== | |||
Im technisch fortgeschrittenen Gebrauch können Variablen und ihre Werte auch in bedingten Ausdrücken bei Parser-Funktionen 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 | |||
<nowiki>{{#ifexpr:LogischerAusdruck| | |||
{{#vardefine:a|b}}| | |||
{{#vardefine:a|c}} | |||
}}</nowiki> | |||
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: | |||
<nowiki>{{#vardefine:a | {{#ifexpr:LogischerAusdruck|b|c}} }}</nowiki> | |||
---- | |||
<references /> | |||
[[Kategorie:Hilfe-GenWiki|Variablen]] | [[Kategorie:Hilfe-GenWiki|Variablen]] |
Version vom 8. März 2011, 14:12 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 werden sie im weiteren Standard-Variable genannt.
- andererseits können in Artikeln eigene Variable definiert und eingesetzt werden.
Übersicht über verwendbare Standard-Variable
Syntax | Bedeutung | aktueller Wert |
{{CURRENTMONTH}} | Monat (Zahl) | 11 |
{{CURRENTMONTHNAME}} | Monat (Name) | November |
{{CURRENTMONTHNAMEGEN}} | Monatsname im Genitiv | November |
{{CURRENTDAY}} | Tag | 21 |
{{CURRENTDAYNAME}} | Wochentag | Donnerstag |
{{CURRENTYEAR}} | Jahr | 2024 |
{{CURRENTTIME}} | Uhrzeit | 14:21 |
{{NUMBEROFARTICLES}} | Anzahl von Artikeln | 249.204 |
{{PAGENAME}} | Artikelname | Variablen |
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 Parser-Funktion {{#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 (Parser-Funktionen)
Im technisch fortgeschrittenen Gebrauch können Variablen und ihre Werte auch in bedingten Ausdrücken bei Parser-Funktionen 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.