Seitenspezifische Variablen

Autoren (Fortgeschritten), Administratoren (FTP)

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}

Home

{$SiteGroup}

Site

Beachten Sie hierzu auch die Ausführungen zu $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.

Hinweis: In der deutschen Dokumentation ist statt dessen ein (: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}

2015-11-27

Datum und Zeit der letzten Änderung im Unix-Zeitstempel-Format (Sekunden seit 1. Jan. 1970, 00:00 Uhr)

{$LastModifiedTime}

1448649969

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}

add reference to PagePathFmt in conx with DefaultName

URL der Seite

{$PageUrl}

https://www.preservationready.org/PmWikiDe/PageVariables

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}

(protected)

{$PasswdEdit}

(protected)

{$PasswdAttr}

(protected)



Zusätzlich zu den oben erwähnten Variablen, gibt es noch einige seitenunabhängige Variablen, die durch diese Auszeichnungen erreichbar sind:

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}
Beachten Sie das kleine 'd' in $AuthId

Aktuell installierte Version von PmWiki und die interne Versionsnummer

{$Version}

pmwiki-2.3.20

{$VersionNum}

2003020

Die URL des pmwiki.php-Skripts

{$ScriptUrl}

https://www.preservationready.org

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

Sie sollten die Benutzereingaben bereinigen, so dass sie nur noch erwartete Werte enthalten oder versichern Sie sich, dass der Wert eine Zeichenkette in Anführungszeichen steht, zum Beispiel:

# wir erwarten nur numerische Werte in Var
$FmtPV['$Var'] = intval($_REQUEST['Var']);

# properly escaped quoted string.
$FmtPV['$Var'] = '"'. addslashes($_REQUEST['Var']) . '"';

siehe auch:

Im Kochbuch auf PmWiki.org

<< 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 - Backlinks
Zuletzt geändert:
PmWikiDe.PageVariables am 27.11.2015
PmWiki.PageVariables am 24.10.2022