Aktuelle Änderungen - Suchen:

PmWiki (deutsch)


Englisch:

PmWiki

pmwiki.org

edit SideBar

Sonstige Variablen

Administratoren (FTP)

$FmtV
Diese Variable ist ein assoziatives Array, das benutzt wird für Stringersetzungen am Ende eines Aufrufes von FmtPageName(). Für jedes Element in dem Array wird der "Schlüssel", interpretiert als String, durch seinen zugehörigen "Wert" ersetzt. Diese Variable ist dafür vorgesehen, um Ersetzungsvariablen zu speichern, die häufig wechselnde Werte haben (dadurch vermeidet man einen Neuaufbau des Variablencache und FmtPageName() wird schneller). Siehe auch $FmtP. Werte von $FmtV werden gesetzt von den internen Funktionen FormatTableRow, LinkIMap, HandleBrowse, PreviewPage, HandleEdit, PmWikiAuth, und PasswdVar, augenscheinlich um Werte zu setzen für vom System erzeugte Stringersetzungen wie PageText.
$FmtP
Diese Variable ist ein assoziatives Array, das benutzt wird für Stringersetzungen nahe dem Beginn eines Aufrufes von FmtPageName(). Für jedes Element in dem Array wird der "Schlüssel", interpretiert als String, durch seinen zugehörigen "Wert" ersetzt, der für den Namen der aktuellen Seite ermittelt wurde. Dies wird zum Beispiel benutzt, um $-Ersetzungen zu handhaben, die vom Seitennamen abhängig sind, welcher an FmtPageName() übergeben wurde. Siehe auch $FmtV. zu robots.php: Wenn $EnableRobotCloakActions gesetzt ist, wird ein Muster an $FmtP angefügt, das jeglichen "?action="-URL-Parameter in Seiten-URLs verhindert; PmWiki erzeugt so also keine URLs für Aktionen, auf die Suchmaschinenroboter nicht zugreifen dürfen. Das kann die Last des Server erheblich reduzieren, indem er an die Roboter keine Links ausliefert, die ohnehin nicht im Index auftauchen dürfen.
$FmtPV
Diese Variable ist ein Array, das Seiten-Variablen definiert. Neue Variablen können definiert werden mit $FmtPV['$VarName'] = 'variable definition';, die dann in Markups wie {$VarName} benutzt werden können. Bitte bedenken Sie, dass die Inhalte von $FmtPV['$VarName'] ausgewertet werden, um den endgültigen Text für $VarName zu erzeugen, deshalb muss der Inhalt ein PHP-Ausdruck sein, der zum Zeitpunkt der Auswertung gültig ist. Insbesondere wird dies hier nicht funktionieren:
#Das funktioniert nicht
$FmtPV['$MyText'] = "This is my text."; # WARNUNG: Das funktioniert nicht!
Das Problem ist, dass This is my text. kein gültiger PHP-Ausdruck ist. Damit es funktioniert, müsste das in Anführungszeichen gesetzt werden. Was also tatsächlich in $FmtPV['$MyText'] gespeichert werden müsste, ist "This is my text.", was ein gültiger PHP-Ausdruck für einen String ist. Demnach ist der korrekte Weg, den Textstring einzusetzen, einen weiterer Satz von Anführungszeichen um alles herum zu setzen.
#das wird funktionieren
$FmtPV['$MyText'] = '"This is my text."';
Das ist eine Folge dessen, wie in PHP oder PmWiki auf Variablen zugegriffen wird. Damit die Seiten-Variable $MyVar den Inhalt der internen Variablen $myvar ausgibt, versuchen viele Leute so etwas, was nicht funktioniert:
#Das funktioniert auch nicht!
$myvar = EineKomplexeFunktion();
$FmtPV['$MyVar'] = $myvar; # WARNUNG: geht nicht!
Es gibt mehrere korrekte Wege, je nach dem, ob Sie den Wert von $myvar brauchen wie er zur der Zeit ist, in der der $FmtPV-Eintrag erfolgte, oder zu der Zeit, wo eine jeweilige Instanz von $MyVar in der Seite ausgewertet wird. Fur die meisten, einfachen Seiten-Variablen, die sich während des Seitenaufbaus nicht ändern, ist es effektiver, den Wert zu setzen, wenn der Eintrag erzeugt wird:
$myvar = EineKomplexeFunktion();
$FmtPV['$MyVar'] = "'" . $myvar . "'"; #fange den Inhalt von $myvar ein
Hinweis: Wenn $myvar ein einfaches Anführungszeichen enthält, wird das obige nicht funktionieren. Sie müssen die Variable noch bearbeiten um alle einfachen Anführungszeichen abzufangen (zu escapen).
Für komplexere Fälle, in denen $MyVar an verschiedenen Stellen auf der Seite unterschiedliche Werte hat (möglicherweise aufgrund des Effekts anderer Markups), müssen Sie den FmtPV-Eintrag zu einer Referenzvariablen machen, die auf eine globale Variable referenziert (und die Variable sollte besser eine globale Variable sein), wie hier:
global $myvar;
$FmtPV['$MyVar'] = '$GLOBALS["myvar"]';
Schließlich kann Sie nichts davon abhalten, dass die Evaluation des FmtPV-Eintrags einfach zu einer Funktion führt, die den Ersetzungstext erzeugt:
# add page variable {$Today}, formats today's date as yyyy-mm-dd
$FmtPV['$Today'] = 'strftime("%Y-%m-%d", time() )';
Siehe Cookbook:MoreCustomPageVariables für weitere Beispiele, wie man $FmtPV einsetzen kann.
$MaxPageTextVars
Diese Variable verhindert endlose Schleifen durch versehentliche rekursive Seiten-Text-Variablen, die einen Server zum Erliegen bringen können. Der Standardwert ist 500, d. h. jede Seiten-Text-Variable einer Seite kann 500 mal in einer Wikitextseite dargestellt werden.
$PageCacheDir
ermöglicht das Zwischenspeichern von HTML für Seiten ohne Bedingungen. Die Variable enthält den Namen eines beschreibbaren Verzeichnisses, wo PmWiki die HTML-Ausgabe zwischenspeichern kann, um die aufeinanderfolgende Ausgabe der selben Seiten zu beschleunigen. Siehe auch $PageListCacheDir.
# ermögliche das Zwischenspeichern in work.d/
$PageCacheDir = 'work.d/';


Übersetzung von PmWiki.OtherVariables Originalseite auf PmWikiDe.OtherVariables - Rückverweise
Zuletzt geändert:
PmWikiDe.OtherVariables am 25.07.2013
PmWiki.OtherVariables am 10.11.2014

Bearbeiten - Versionen - Druckansicht - Aktuelle Änderungen - Suchen
Zuletzt geändert am 25.07.2013 13:34 Uhr