Seitenspezifische Variablen
Diese Seite beschreibt die "Variablen", die im Zusammenhang mit den Seiten stehen. Seiten-Variablen haben das Format {$Variable}
, und können im Text der Seite oder für bestimmte Formatierungs-Regeln verwendet werden. Zum Beispiel "{$Group}
" zeigt die aktuelle Gruppe in der wir uns momentan befinden (PmWikiDe).
Anmerkung: Verwechseln Sie diese Variablen (die nur in Wikiseiten gesetzt und benutzt werden) nicht mit PHP-Variablen. Seitenspezifische Variablen können in PHP mit der PageVar()-Funktion gelesen werden.
Beachten Sie, dass diese Variablen nicht notwendigerweise in PHP-Kode existieren, da sie für Wikiseiten bestimmt sind (immerhin kann man sie in FmtPageName-Strings nutzen).
Es ist auch möglich Variablen von anderen Seiten anzuzeigen. Dazu stellt man einfach den Seitennamen voran: {Seitenname$Variable}
. Zum Beispiel: "{MarkupMasterIndex$Title}
" zeigt "Übersicht über Textauszeichnungen".
Spezielle Verweise
Variablen mit einem speziellen Verweismechanismus werden eingesetzt, um die Umgebung der Variable näher zu bestimmen, wenn
- die Variable (mit ihrer Seite zusammen) in eine andere (Ziel-) Seite eingebunden wird, oder wenn
- die Variable in einer Sidebar, Kopf- oder Fußzeile verwendet wird.
Stellt man der Variable ein Sternchen (*) voran, heißt das, der Wert der Variable bezieht sich auf die Zielseite oder die aktuell angezeigte Hauptseite, sonst bezieht sie sich auf die eingefügte Seite.
*$
Seiten-Variable - ein vorangestellter Stern (*) - die Variable bezieht sich auf die aktuell angezeigte Seite
Ohne den Stern ist der Wert der Variable der, den sie in der Seite bekommen hat, aus der sie ursprünglich stammt, z. B. der Sidebar, der Kopf- oder der Fußzeile.$
Seiten-Variable - die Variable bezieht sich auf den Inhalt der referenzierten Seite
Siehe auch $EnableRelativePageVars
Diese Referenzierung wird vor allem beim Erstellen von Seiten-Text-Variablen und Seitenlisten verwendet.
Standard-Seiten-Variablen
In der linken Spalte steht der Name der Variablen, in der rechten Spalte steht der Wert dieser Variablen für diese Seite: PmWikiDe.PageVariables
Standard-Gruppe und -Seite sowie Site-Gruppe
{$DefaultGroup} | Main |
{$DefaultName} | HomePage |
{$SiteGroup} | Site |
$PagePathFmt
, womit man die Startseite für eine Gruppe setzt.
Gruppe, in der sich die Seite befindet
{$Group} | PmWikiDe |
{$Groupspaced} | Pm Wiki De |
Seitenname
{$Name} | PageVariables |
{$Namespaced} | Page Variables |
{$FullName} | PmWikiDe.PageVariables |
Basisname der Seite (befreit von vorangestellten oder angehängten Zusätzen, die in $BaseNamePattern definiert wurden
{$BaseName} | PmWikiDe.PageVariables |
Seitentitel
{$Title} | Seitenspezifische Variablen |
{$Titlespaced} | Seitenspezifische Variablen |
Beschreibung der Seite, die in dem (:description:)
-Markup hinterlegt ist
{$Description} | Dokumentation der Variablen, die mit einer Seite verbunden sind. |
(:Summary:)
-Markup, eingefügt (siehe PageTextVariables), das so aufgerufen wird:
{$:Summary} | Beschreibt die Variablen um auf Seiten und Gruppen zu verweisen |
Datum und Zeit der letzten Änderung, das Format ist in $TimeFmt
vorgegeben
{$LastModified} | 02.08.2016 15:07 Uhr |
Datum und Zeit der letzten Änderung im Unix-Zeitstempel-Format (Sekunden seit 1. Jan. 1970, 00:00 Uhr)
{$LastModifiedTime} | 1470143264 |
Letzter Autor der Seite
{$LastModifiedBy} | mfwolff |
IP des letzten Autors, erscheint anstelle des Autors, wenn beim Speichern kein Name angegeben wird
{$LastModifiedHost} |
Beim letzten Speichern angegebene Zusammenfassung
{$LastModifiedSummary} |
URL der Seite
{$PageUrl} |
In der URL angeforderten Seite, wird von Site.PageNotFound benutzt
{$RequestedPage} | PmWikiDe/PageVariables |
gerade ausgeführte Aktion (browse, edit, attr, print, ...)
{$Action} | browse |
Lese-, Bearbeiten- und Attribute-Berechtigung der Seite
{$PasswdRead} | geschützt |
{$PasswdEdit} | geschützt |
{$PasswdAttr} | geschützt |
Zusätzlich zu den oben erwähnten Variablen, gibt es noch einige seitenunabhängige Variablen, die durch diese Auszeichnungen erreichbar sind:
Gruppen für 'Site' und 'SiteAdmin'
{$SiteGroup} | Site |
{$SiteAdminGroup} | SiteAdmin |
Der Name der Person, die aktuell mit der Site interagiert (das ist nicht notgedrungen der Autor der Seite, siehe $LastModifiedBy)
{$Author} |
Die aktuell authentifizierte ID
{$AuthId} |
$AuthId
Aktuell installierte Version von PmWiki und die interne Versionsnummer
{$Version} | pmwiki-2.2.138 |
{$VersionNum} | 2002138 |
Die URL des pmwiki.php-Skripts
{$ScriptUrl} |
Seiten-Variablen-Sicherheit ($authpage)
Die Form {pagename$variable}
oder einige Seitenlisten können die Werte der Variablen aus anderen Seiten anzeigen, unabhängig von der Sicherung durch Passworte.
Wenn die anderen, die aufgerufenen, Seiten passwortgeschützt sind und der Besucher hat keine Leseberechtigung, zeigen die Variablen dennoch normalerweise ihren Wert an, anders als die Seiten-Text-Variablen. Während die meisten Variablen keine sensiblen Informationen enthalten, könnten einige Variablen doch welche enthalten: $Title, $Description und jene, die mit $LastModified beginnen.
Administratoren und Modulentwickler können die sensiblen Seiten-Variablen redifinieren, damit sie die Authentifikation berücksichtigen, indem sie die Variable "$authpage" anstelle von "$page" in der Definition verwenden. Der folgende Schnipsel kann in local/config.php hinzugefügt werden — er überschreibt die möglicherweise sensiblen Definitionen mit den sicheren:
foreach($FmtPV as $k=>$v) { if(preg_match('/^\\$(Title(spaced)?|LastModified(By|Host|Summary|Time)?|Description)$/', $k)) $FmtPV[$k] = str_replace('$page', '$authpage', $v); }
Eigene Variablen
Sie können benutzerdefinierte Seiten-Variablen als lokale Anpassung hinzufügen. In einer lokalen Konfigurationsdatei (local/config.php) oder in Rezepten aus dem Kochbuch, können diese festgelegt werden. Verwenden Sie dazu die Variable $FmtPV
(siehe Sonstige Variablen):
$FmtPV['$VarName'] = "'Definition der Variable'"; $FmtPV['$CurrentSkin'] = '$GLOBALS["Skin"]'; $FmtPV['$WikiTitle'] = '$GLOBALS["WikiTitle"]';
Dies definiert eine neue Seiten-Variable namens $CurrentSkin, die in der Seite benutzt werden kann mittels {$CurrentSkin}
(auch für Bedingte Auszeichnung en). Es ist notwendig, einfache Anführungszeichen innerhalb doppelter Anführungszeichen zu verwenden wie es oben gezeigt wird (vorzugsweise so) oder umgekehrt doppelte Anführungszeichen innerhalb einfacher Anführungszeichen so wie ' "dies" '.
Wenn Sie eine Seiten-Variable haben möchten, die das aktuell benutzte Passwort zurück gibt (genauer das zuletzt eingegebene), können Sie dies benutzen:
$FmtPV['$AuthPw'] = 'reset(array_keys((array)@$_SESSION["authpw"]))';
Bitte beachten Sie, dass Werte der Elemente von $FmtPV
mit eval() ausgewertet werden. Sie sollte also Benutzereingaben bereinigen. Das Folgende ist sehr unsicher:
$FmtPV['$Var'] = $_REQUEST['Var'];
# höchst unsicher, erlaubt PHP-Kode-Injektion
$FmtPV['$Var'] = '"'. addslashes($_REQUEST['Var']).'"';
# höchst unsicher, erlaubt PHP-Kode-Injektion
Siehe im Rezept Cookbook:HttpVariables nach einem besseren Weg, diese Variablen zu nutzen.
siehe auch:
- Variablen
- Seiten-Text-Variablen
- FmtPageName()
- Formatierungsanweisungen im Ausdruck
- Übersicht über Textauszeichnungen
Im Kochbuch auf PmWiki.org
- Eigene Seiten-Variablen
- UTF-8-Kompatibilität für
{$Groupspaced}
,{$Namespaced}
und{$Titlespaced}
(nur für Versionen vor 2.2.0-beta30 nötig)
<< Bedingte Auszeichnung | Dokumentationsindex | Seiten-Text-Variablen >>
Gibt es eine Variable wie $LastModified, die aber die Erstellungszeit anzeigt?
Nein, aber Sie können eine in config.php erzeugen. Zum Beispiel:
# add page variable {$PageCreationDate} in format yyyy-mm-dd $FmtPV['$PageCreationDate'] = 'strftime("%Y-%m-%d", $page["ctime"])';
Wenn Sie lieber das in config.php definierte Format erhalten möchten, benutzen Sie:
$FmtPV['$Created'] = "strftime(\$GLOBALS['TimeFmt'], \$page['ctime'])";
Wie kann ich testen, ob ein Variable gesetzt ist und/oder nicht leer?
Benutzen Sie (:if ! equal "{$Variable}" "":) $Variable ist nicht leer. (:ifend:)
. Beachten Sie, dass nicht definierte oder nicht existierende Variablen als leere Variablen erscheinen.
Übersetzung von PmWiki.PageVariables, Originalseite auf PmWikiDe.PageVariables — Rückverweise
Zuletzt geändert: | PmWikiDe.PageVariables | am 02.08.2016 |
PmWiki.PageVariables | am 01.10.2018 |