Seitenspezifische Variablen

für die Liste aller Seiten

Autoren (Fortgeschritten), Administratoren (FTP)

< Bedingte Auszeichnung | Dokumentations-Index | Seiten-Text-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 zeigt "{$Group}" die aktuelle Gruppe, in der wir uns momentan befinden als "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".

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}

StartSeite?

{$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

Titel der Website

{$WikiTitle}

MörkePortal

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 (zusätzlich) ein (:Summary:)-Markup eingefügt (siehe PageTextVariables), das so aufgerufen wird:
{$:Summary}

Beschreibt die Variablen, die im Zusammenhang mit einer Seite stehen

Datum und Zeit der letzten Änderung, das Format ist in $TimeFmt vorgegeben

{$LastModified}

25.04.2022, um 09:11 CEST

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

{$LastModifiedTime}

1650870678

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}

pm hlt, hlt php (+159)

URL der Seite

{$PageUrl}

https://moerke-online.de/PmWikiDe/PageVariables

In der URL angeforderten Seite, wird von Site.PageNotFound benutzt

{$RequestedPage}

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

Gruppen für 'Site' und 'SiteAdmin'

{$SiteGroup}

Site

{$SiteAdminGroup}

SiteAdmin



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.37

{$VersionNum}

2003037

Die URL des pmwiki.php-Skripts

{$ScriptUrl}

https://moerke-online.de

Spezielle Verweise

Variablen mit einem speziellen Verweismechanismus werden eingesetzt, um die Umgebung der Variablen 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 hat die Variable den Wert, den sie in der Seite bekommen hat, aus der sie ursprünglich stammt, z. B. der Sidebar, der Kopf- oder der Fußzeile.
    Mit dem Stern wird der Wert von der angesehenen Seite zu Verfügung gestellt, selbst wenn das Markup von einer eingebundenen Seite oder von einer Sidebar stammt.
  • {$Seiten-Variable} - die Variable bezieht sich auf den Inhalt der referenzierten Seite.
  • {=$Seiten-Variable} - wird nur in Seitenlistenvorlagen genutzt, um die von jeder der Seiten aus der Seitenliste zur Verfügung gestellte Variable auszugeben.
Diese speziellen Verweise werden auch beim Erstellen von Seiten-Text-Variablen und Seitenlistenvorlagen verwendet.

Sie können z. B. testen und sichtbar machen, ob eine Seite Teil einer anderen Seite ist, ...

(:if ! name {$FullName}:) 
%comment% Der Name der Seite ist nicht der gleiche wie der Name, aus dessen Quelle dieser Text stammt
->[[{$FullName}#anchor | more ...]]
(:ifend:)

... oder Bezug nimmt auf die Hauptseite in einer Sidebar, einem Footer oder einem Header

Diese Seite ist [[{*$FullName}]]

Diese Seite ist PmWikiDe.PageVariables

Seiten-Variablen-Sicherheit ($authpage)

Die Form {pagename$variable} in einigen 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 Auszeichnungen). 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" '.

Sie machen eine Zeichenkette zu einer Seiten-Variable, indem Sie sie zum $GLOBALS()-Array hinzufügen.

## Erstellen einer {$BaseUrl}-Seiten-Variable
$GLOBALS['BaseUrl'] = $UrlScheme."://".$_SERVER["HTTP_HOST"]."/Wiki";
$FmtPV['$BaseUrl'] = '$GLOBALS["BaseUrl"]';

Sie können die Seiten-Variable auch durch eine Funktion erstellen lassen.

## Erstellen einer {$BaseUrl}-Seiten-Variable
function BaseUrl() { 
  global $UrlScheme;
  return $UrlScheme."://".$_SERVER['HTTP_HOST']."/Wiki"; 
}
$FmtPV['$BaseUrl'] = 'BaseUrl()';

Bitte beachten Sie, dass Werte der Elemente von $FmtPV mit eval() ausgewertet werden, deshalb bereinigen Sie stets die Benutzereingaben. 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:

Im Kochbuch auf PmWiki.org

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'] = '[[PmWiki/Functions#PSFT|PSFT]]("[=%Y-%m-%d=]", $page["ctime"])';
Wenn Sie lieber das in config.php definierte Format erhalten möchten, benutzen Sie:
$FmtPV['$Created'] = "[[PmWiki/Functions#PSFT|PSFT]](\$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.

Categories: PmWiki Developer für die Liste aller Seiten

< Bedingte Auszeichnung | Dokumentations-Index | Seiten-Text-Variablen >


Übersetzung von PmWiki.PageVariables,   Originalseite auf PmWikiDe.PageVariables   —   Rückverweise

Zuletzt geändert:   PmWikiDe.PageVariablesam 25.04.2022
 PmWiki.PageVariablesam 19.08.2024