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. Seiten-Text-Variable können nur einen Namen haben, der einfache Latin/Roman-(ASCII)-Zeichen, Ziffern, Bindestriche und Unterstriche enthält. Das ist eine Einschränkung für internationale Wikis (experimentelle Rezepte für internationale STV: Cookbook:InternationalPTVs).
Es gibt drei Wege, Seiten-Text-Variablen zu definieren:
:Name: Crisses "{$:Name}" |
"Crisses" |
{$:Name}
(wird zu "Crisses") zugegriffen werden kann.
Adresse: 1313 Mockingbird Lane "{$:Adresse}" | Adresse: 1313 Mockingbird Lane "1313 Mockingbird Lane" |
{$:Adresse}
-Variable (Variablen-Markup wird zu "1313 Mockingbird Lane").
(:Land: Transylvania :) "{$:Land}" | "Transylvania " |
{$:Land}
-Variable (Variablen-Markup wird zu "Transylvania ").
Wenn eine Seitentextvariable nicht in einer Seite definiert wurde oder wenn der Besucher der Seite kein Leserecht für die Seite hat, die die Variablendefinition enthält, gibt das Markup für den Zugriff auf die Variable wie {$:Country}
eine leere Zeichenkette zurück.
Ein Administrator kann einen Standardwert für solche Fälle definieren (PmWiki 2.2.121+). Das folgende Array kann in der local/config.php-Datei definiert werden:
$DefaultUnsetPageTextVars
= array( 'SpezifischeVariable' => 'SpezifischeVariable is unset', '*PartialMatch*' => 'some value', '*' => '(unset)', );$DefaultEmptyPageTextVars
= array( 'SpezifischeVariable' => 'SpezifischeVariable is set, but empty', '*' => '(empty)', );
In dem obigen Beispiel geben die {$:SpezifischeVariable}
oder die {AndereSeite$:SpezifischeVariable}
einen vordefinierten Wert zurück:
$DefaultUnsetPageTextVars
definierten Wert, wenn die Variable in dem Seitentext nicht definiert wurde oder wenn der Besucher der Seite kein Leserecht für AndereSeite hat,
$DefaultEmptyPageTextVars
definierten Wert, wenn der Besucher Leserecht hat und die Variable definiert, aber leer, ist, z. B. (:SpezifischeVariable::)
(zwischen den letzten beiden Doppelpunkten steht nichts).
Die Muster werden der Reihe nach abgeglichen und die erste Übereinstimmung bestimmt den Wert, der der Variablen zugewiesen wird. Der Stern *
passt auf jede Zeichenkette. In dem obigen Beispiel gibt eine undefinierte Variable, die weder auf 'SpezifischeVariable' noch auf '*PartialMatch*' passt, den Wert '(unset)' aus.
Auf der gleichen Seite können Sie die Seiten-Text-Variable einfach durch das {$:Var}
-Format auflösen (wie oben gezeigt).
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.
{*$:Land}\\ {{*$Group}/PmWiki$:Summary} | Transylvania |
Um in der Hauptseite eine Variable aus dem Header oder Footer aufzurufen, siehe unten (Verwendung anderer Seiten).
Wenn Sie Daten aus einer anderen Seiten herausziehen wollen, verwenden Sie das {Group/PageName$:Var}
-Format.
Suburb: Khandallah (:Lake:Taupo:) :Mountain:Mt Ruapehu ->"{PageTextVariables$:Suburb}" ->"{{$FullName}$:Lake}" ->"{PmWikiDe/PageTextVariables$:Mountain}" | Suburb: Khandallah
"Khandallah"
"Taupo"
"Mt Ruapehu"
|
Seiten-Text-Variablen werden niemals zusammen mit ihrem Quelltext eingebunden. Siehe Verwendung anderer Seiten oben, um auf Seiten-Text-Variablen aus anderen Seiten zu verweisen.
Auch Seitenlisten können auf die Seiten-Text-Variablen zugreifen:
(:pagelist group=PmWikiDe order=$:Summary count=6 fmt=#singleline:) |
Und um Seitenlisten zu erzeugen ( wie die in Site.Page List Templates, Seitenlisten, Seitenlistenvorlagen, Seitenspezifische Variablen beschriebenen), speichern Sie angepasste Seitenlisten in Site.Local Templates?.
Seitenlisten können Seiten-Text-Variablen nutzen, um Seiten auszuwählen:
(:pagelist group=PmWiki $:City=Paris count=8 fmt=#singleline order=-name:) |
(:pagelist group=PmWiki $:City="Addis Abeba,Paris" order=-$:Version count=8 fmt=#singleline:) |
(:Linkme: [[PageToLink]]:) (:if false:){$:Linkme}(:if:)
Der Seiten-Text-Variablen-Wert ist immer der Text, der in die Seite geschrieben wurde. Der wird erst ausgewertet, wenn die Variable gedruckt/ausgegeben wird als HTML. Beim Sortieren nach einer Seiten-Text-Variablen sind all die Werte in allen Seiten die noch nicht ausgewerteten Text-Strings und die Seitenlisten-Sortierfunktion tut was sie kann damit. Sie wertet den Text an dieser Stelle nicht aus.
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.
(:pagelist group=PmWikiDe $:Summary=-?* count=6 fmt=#singleline:) |
Zeige Seiten an, sortiert nach Zielgruppen-(Audience)-Seiten-Text-Variable
>>comment<< [[#byaudience]] (:if ! equal '{=$:Audience}' '{<$:Audience}':) -<'''{=$:Audience}''': (:ifend:) [[{=$Name}]] [[#byaudienceend]] >><< (:pagelist group=PmWikiDe count=10 fmt=#byaudience order=-$:Audience:) | Übersetzer:
Grundlagen:
PmWikiPhilosophy PmWiki References PatrickMichaud Audiences WikiWord WikiPage Contributors WikiAdministrator |
Seiten-Text-Variablen (STV) 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.
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 31.10.2019 |
PmWiki.PageTextVariables | am 30.10.2019 |