Autoren (Fortgeschrittene)
Seiten-Text-Variablen sind Stringvariablen, die in dem Wikitext einer Seite erzeugt werden. Sie werden automatisch auch anderen Seiten zugänglich gemacht, so dass sie dort verwendet werden können.
Definition von Seiten-Text-Variablen
Es gibt drei Wege, Seiten-Text-Variablen zu definieren:
- Verwenden Sie eine Definitionsliste - das normalen Wiki-Markup für eine Definitionsliste erzeugt eine Seiten-Text-Variable.
Beispiel einer Definitionslliste:
:Name: Crisses
"{$:Name}"
| - Name
- Crisses
"Crisses"
|
Das erzeugt in der Seite eine neue Variable, auf die mit {$:Name} (wird zu "Crisses") zugegriffen werden kann.
- Verwenden Sie einen einfachen Doppelpunkt als Trenner in einem normalen Text.
Beispiel für Doppelpunkt als Trenner:
Adresse: 1313 Mockingbird Lane
"{$:Adresse}"
| Adresse: 1313 Mockingbird Lane
"1313 Mockingbird Lane"
|
Das erzeugt in der Seite die {$:Adresse}-Variable (Variablen-Markup wird zu "1313 Mockingbird Lane").
- Verwenden Sie eine versteckte Direktiven-Form - PmWiki-Markup, das nicht auf der Seite erscheint, dennoch eine Variable definiert.
Beispiel für eine Direktive:
(:Land: Transylvania :)
"{$:Land}"
| "Transylvania "
|
Das erzeugt in der Seite die {$:Land}-Variable (Variablen-Markup wird zu "Transylvania ").
Verwendung
Verwendung auf der gleichen Seite
Auf der gleichen Seite können Sie die Seiten-Text-Variable einfach durch das {$:Var}-Format auflösen (wie oben gezeigt).
Verwendung in Headern und Footern: besondere Verweise
Wenn Sie aus einem GroupHeader, GroupFooter, einer SideBar, etc. heraus eine Seiten-Text-Variable der Hauptseite aufrufen möchten, müssen Sie besondere Verweisinformationen einschließen.
Um ausdrücklich die Seiten-Text-Variable der dargestellten Hauptseite aufzurufen, stellen Sie dem Markup für die Seiten-Text-Variablen ein Sternchen voran: {*$:Adresse} in der GroupFooter- oder GroupHeader-Seite.
Beispiel
{*$:Land}
| Transylvania
|
Um in der Hauptseite eine Variable aus dem Header oder Footer aufzurufen, siehe unten (usage from other pages).
Verwendung auf anderen Seiten
Wenn Sie Daten aus einer anderen Seiten herausziehen wollen, verwenden Sie das {Group/PageName$:Var}-Format.
Beispiel:
Suburb: Khandallah
(:Lake:Taupo:)
:Mountain:Mt Ruapehu
->"{PageTextVariables$:Suburb}"
->"{{$FullName}$:Lake}"
->"{PmWikiDe/PageTextVariables$:Mountain}"
| Suburb: Khandallah
- Mountain
- Mt Ruapehu
"Khandallah"
"Taupo"
"Mt Ruapehu"
|
Verwendung auf eingebundenen Seiten (included pages)
Seiten-Text-Variablen werden niemals zusammen mit ihrem Quelltext eingebunden.
Siehe Verwendung auf anderen Seiten oben, um auf Seiten-Text-Variablen aus anderen Seiten zu verweisen.
Verwendung mit Seitenlisten
Auch Seitenlisten können auf die Seiten-Text-Variablen zugreifen:
Beispiel:
(:pagelist group=PmWikiDe
order=$:Summary count=6 fmt=#simple:)
|
|
Und um Seitenlisten zu erzeugen ( wie die in Site.Page List Templates, Page Lists, Page List Templates, Page Variables beschriebenen), speichern Sie angepasste Seitenlisten in Site.Local Templates.
Seitenlisten können Seiten-Text-Variablen nutzen, um Seiten auszuwählen:
Beispiel:
(:pagelist group=PmWiki $:City=Paris
count=8 fmt=#simple order=-name:)
|
|
listet Seiten auf, die '$:City' auf 'Paris' gesetzt haben.
Beispiel: Mehrfachauswahl mit Leerzeichen
(:pagelist group=PmWiki $:City="Addis
Abeba,Paris" order=-$:Version count=8
fmt=#simple:)
|
|
'Anführungszeichen' müssen die ganze Auswahl umschließen.
- Wenn Sie Seiten-Text-Variablen zum Auswählen oder Ordnen nutzen, setzen Sie keine geschweiften Klammern um den Variablennamen. Die geschweifte Form nimmt eine Ersetzung vor bevor das Seitenlisten-Kommando ausgewertet wird.
Prüfen auf gesetzt oder nicht
STV = Seiten-Text-Variable
| =- | STV ist gesetzt (ist nicht leer), z. B. (:pagelist $:Var=- :) |
| =-?* | STV ist nicht gesetzt (ist leer), d. h. nicht ein Zeichen gefolgt von 0 oder mehr Zeichen, z. B. (:pagelist $:Var=-?* :) |
| =* | zeige alle Seiten, unabhängig von der Seiten-Text-Variablen (langsam) |
| =-* | zeige keine Seiten, unabhängig von der Seiten-Text-Variablen (langsam) |
Tip : (:if ! equal "{$:STV}" "":) testet, ob STV leer bzw. nicht gesetzt ist oder nicht.
Beispiel: Seiten ohne eine Zusammenfassung (Summary)
(:pagelist group=PmWikiDe $:Summary=-?*
count=6 fmt=#simple:)
|
|
Verwendung von Seiten-Text-Variablen in einer Vorlage (Template)
Zeige Seiten an, sortiert nach Zielgruppen-(Audience)-Seiten-Text-Variable
Beispiel:
>>comment<<
[[#byaudience]]
(:if ! equal '{=$:Audience}'
'{<$:Audience}':)
-<'''{=$:Audience}''':
(:ifend:)
[[{=$Name}]]
[[#byaudienceend]]
>><<
(:pagelist group=PmWikiDe count=10
fmt=#byaudience order=-$:Audience:)
|
|
Seiten-Text-Variablen werden zugewiesen/ausgewertet, bevor irgendeine bedingte Textauszeichnung ausgewertet wird. Das bedeutet effektiv, dass Sie keine STV innerhalb einer if...else-Bedingung deklarieren können; und ebenso, dass eine STV einen Wert hat, selbst wenn sie in einer (:if false:)....(:if:)-Bedingung gesetzt wurde.
Verwendung innerhalb von Kode (nur für Entwickler)
Die Standard-PageVar($pagename,$varname)-Function kann Seiten-Text-Variablen zurückgeben, aber denken Sie daran, Dollarzeichen und Doppelpunkt hinzuzufügen wie hier;
$var=PageVar($pagename,'$:City')
Das funktioniert, indem sie alle Seiten-(Text-)Variablen, die sie in einer Seite findet, zwischenspeichert (in $PChache) und die Verlangte zurückgibt.
Übersetzung von PmWiki.PageTextVariables
Originalseite auf PmWikiDe.PageTextVariables - Rückverweise
Zuletzt geändert:
PmWikiDe.PageTextVariables am 10.09.2011
PmWiki.PageTextVariables am 10.09.2011