Die Pfad-Variablen

für die Liste aller Seiten

Administratoren

Wenn man zu tun hat mit Datei- oder Pfadvariablen, muss man im Blick haben, dass es einen Unterschied macht, ob man von Urls redet oder von Dateien auf der Festplatte. Zum Beispiel:

  • Die include()-Anweisungen werden benutzt, um andere Dateien (auf der Platte) in das aktuell laufende PmWiki-Skript einzufügen (aus PHP-Sicht). Deshalb erfordern sie Pfade auf des Servers Dateisystem.
  • Die $ScriptUrl- und $PubDirUrl-Variablen braucht man, um einem Browser, der via Webserver verbunden ist, mitzuteilen, wo das Verzeichnis für Skripten ($ScriptUrl) und das öffentlich zugängliche Verzeichnis ($PubDirUrl) liegen, von wo der Browser z. B. Bilder holen könnte.

Beachten Sie, dass ein Browser eine Url (https://example.com/pmwiki/pub) braucht, wohingegen eine Include-Anweisung einen Serverdateipfad braucht ($FarmD/scripts/something.php).

$FarmD
ist das Verzeichnis auf dem Server, wo die Wikifarm liegt (d. h. das Verzeichnis, in dem die Kopie von pmwiki.php und das scripts/-Verzeichnis dieser Wikifarm liegen). Dies Verzeichnis wird automatisch von pmwiki.php ermittelt, wenn das Skript läuft, und kann benutzt werden, um die cookbook/- und pub/-Unterverzeichnisse der Farm von den Unterverzeichnissen eines Feldes zu unterscheiden.
Wenn mehrere Wikis auf einem Server gehostet werden, spricht man von einer Farm. Jedes einzelne Wiki wird (hier) als ein Feld bezeichnet. Die index.php-Dateien der Wikis liegen in eigenen Verzeichnissen, pmwiki.php und die Skipten im scripts-Verzeichnis werden aber gemeinsam benutzt (siehe Wikifarmen). Bei Einzelinstallationen weist $FarmD auf das Installationsverzeichnis.
$UrlScheme
enthält entweder "http" oder "https", das aktuell benutzte Protokoll für den Zugriff auf das Wiki.
$FarmPubDirUrl
verweist auf das gemeinsame pub-Verzeichnis der gesamten Wikifarm. Im Standard ist es die gleiche Url wie $PubDirUrl (Einzelinstallation).
$PageCSSListFmt
ist ein assoziatives Array, das PmWiki benutzt, um jegliche locale CSS-Konfigurationsdatei zu finden. Es besteht aus einem Satz von (Schlüssel,Wert)-Paaren, die beide auf die gleiche Datei zeigen. Der Schlüssel ist ein möglicher Pfad zu einer Datei auf der Festplatte, die die CSS-Daten enthält, während der Wert eine korrespondierende Url ist, die zu genau der gleichen Datei führt. Die Schlüssel werden der Reihe nach getestet, und für jede benannte Datei, die wirklich existiert, wird der Browser angewiesen, die korrespondierende Url zu laden. Das erlaubt PmWiki, die CSS-Dateien nur dann aufzurufen, wenn sie auch wirklich existieren (Why see if a CSS exists?). Der Standardwert für diese Variable ist:
$PageCSSListFmt = array(
  'pub/css/local.css' => '$PubDirUrl/css/local.css',
  'pub/css/{$Group}.css' => '$PubDirUrl/css/{$Group}.css',
  'pub/css/{$FullName}.css' => '$PubDirUrl/css/{$FullName}.css');
Beachten Sie, dass der Standard (ab Version pmwiki-2.1.beta26) keinen Verweis auf $FarmPubDirUrl für CSS-Konfigurationsdateien setzt. Wenn Sie gern die Möglichkeit hätten, CSS-Konfigurationsdateien in beiden, dem pub-Verzeichnis des Feldes und dem pub-Verzeichnis der Farm zu plazieren, könnten Sie diese Zeilen in Ihrer local/config.php-Datei unterbringen (beschrieben in Cookbook:SharedPages):
# das fügt farm.css zu allen Wikis hinzu
$PageCSSListFmt = array(
  '$FarmD/pub/css/farm.css' => '$FarmPubDirUrl/css/farm.css',
  'pub/css/local.css' => '$PubDirUrl/css/local.css',
  'pub/css/$Group.css' => '$PubDirUrl/css/$Group.css',
  'pub/css/$FullName.css' => '$PubDirUrl/css/$FullName.css');
# dies ermöglicht Farm-CSS-Dateien in ähnlicher Weise in einem lokalen Wiki
$PageCSSListFmt = array(
  '$FarmD/pub/css/local.css' => '$FarmPubDirUrl/css/local.css',
  '$FarmD/pub/css/$Group.css' => '$FarmPubDirUrl/css/$Group.css',
  '$FarmD/pub/css/$FullName.css' => '$FarmPubDirUrl/css/$FullName.css',
  'pub/css/local.css' => '$PubDirUrl/css/local.css',
  'pub/css/$Group.css' => '$PubDirUrl/css/$Group.css',
  'pub/css/$FullName.css' => '$PubDirUrl/css/$FullName.css');
Beachten Sie den Unterschied zwischen CSS-Konfigurations-Dateien und den CSS-Dateien in Verbindung mit einem Skin. Skin-Dateien, einschließlich der zugehörigen CSS-Dateien, können sowohl im pub-Verzeichnis der Farm als auch in dem des Feldes liegen, das Programm wird sie finden.
$PubDirUrl
ist die Url, die auf das pub-Verzeichnis verweist. Dieses Verzeichnis enthält alle die Dateien und Verzeichnisse, die direkt von einem Browser erreichbar sein müssen (d. h. CSS-, Grafik- und HTML-Dateien). Am hervorstechendsten ist hierbei das skins-Unterverzeichnis.
Das folgende mag für Sie funktionieren[1]
  $ScriptUrl = 'https://'.$_SERVER['HTTP_HOST'].'/pmwiki/pmwiki.php';
  $PubDirUrl = 'https://'.$_SERVER['HTTP_HOST'].'/pmwiki/pub';

https://www.pmwiki.org/wiki

$ScriptUrl
ist die Url, die die Browser der Besucher benutzen sollen, wenn sie auf PmWiki zugreifen, entweder als Feld oder als Farm. Dort liegt pmwiki.php. Diese Url wird immer dann benutzt, wenn PmWiki einen Link zu einer anderen Seite oder einer 'action' setzen muss. PmWiki ist gewöhnlich ziemlich gut darin, den korrekten Wert für $ScriptUrl selbst "herauszufinden", aber manchmal muss ein Administrator den Wert ausdrücklich setzen wegen Url-Manipultionen des Webservers (wie Cookbook:CleanUrls, mod_rewrite, bizarre PHP-Konfigurationen, und so weiter).
$SkinDir
wird gesetzt in der scripts/skins.php-Datei als Basis-Verzeichnis des aktuellen Skins. Diese Variable wird typischerweise innerhalb einer skin.tmpl-Datei benutzt, um den Zugriff auf CSS- oder Grafikdateien bereitzustellen, die mit dem Skin verbunden sind.
$SkinDirUrl
wird gesetzt in der scripts/skins.php-Datei als Basis-Url des aktuellen Skin-Verzeichnisses (d. h. innerhalb des 'pub/skins/'-Verzeichnisses). Diese Variable wird typischerweise innerhalb einer skin.tmpl-Datei benutzt, um den Zugriff auf Sekundär-Dateien zu ermöglichen. Siehe Anmerkung zur Sicherheit bezüglich der Nutzung.
$WorkDir
Diese Variable enthält einen String, der einen lokalen Pfad zu einem Verzeichnis angibt, in dem die PmWiki-Maschine temporäre Dateien etc. anlegen kann. PmWiki braucht das für eine Vielzahl von Dingen, etwa zum Zusammenbauen von verschachtelten Edits, zum Zwischenspeichern von Mailpost-Eintragungen, zum Im-Auge-behalten der letzten Modifikationszeiten der Site, für andere Arten von Zwischenspeichern, etc. Verwechseln Sie diese Variable nicht mit $WikiDir; der Grund, warum standardmäßig beide Variablen $WorkDir und $WikiDir auf das gleiche Verzeichnis wiki.d/ verweisen, ist schlicht, um die Dinge für Administratoren möglichst einfach zu halten.
$WikiDir
$WikiDir ist ein SeitenSpeicher-Objekt, das darauf verweist, wie Seiten gespeichert werden. Das kann ein einfacher Verweis auf ein Verzeichnis sein (typischerweise wiki.d), oder etwas hoch entwickeltes wie ein MySQL-Backend oder eine .dbm-Datei. Verwechseln Sie diese Variable nicht mit $WorkDir; der Grund, warum standardmäßig beide Variablen $WorkDir und $WikiDir auf das gleiche Verzeichnis wiki.d/ verweisen, ist schlicht, um die Dinge für Administratoren möglichst einfach zu halten.
Um die Dateien von Gruppen in getrennten, gruppenspezifischen Verzeichnissen zu speichern, fügen Sie am Anfang Ihrer Konfigurationsdatei
->$WikiDir = new PageStore('wiki.d/$Group/$FullName');
ein. [2]
$WikiLibDirs
$WikiLibDirs ist ein Array von SeitenSpeicher-Objekten, die angeben, wo nach Seiten gesucht werden soll. Standardmäßig ist es so eingerichtet, dass in wiki.d und wikilib.d nachgesehen wird, aber es kann so verändert werden, dass in anderen Verzeichnissen nachgesehen wird.
Um zum Beispiel die Seiten auszuschließen, die in der PmWiki-Distribution mitgeliefert werden, benutzen Sie die Zeile unten. (Beachten Sie, dass einige Funktionen wie Bearbeiten und Suchen auf gewisse Seiten angewiesen sind, deshalb müssten Sie sie in das $WikiDir-Verzeichnis kopieren.)
$WikiLibDirs = array(&$WikiDir);
Ein weiteres Beispiel
## benutze für jeden Seitennamen 
##   - die Version in wiki.d, wenn die Seite dort existert,
##   - die Version in wikilib2.d, wenn es keine wiki.d-Version gibt oder
##   - die Version in wikilib.d, wenn keine der beiden Dateien oben existieren
$WikiLibDirs = array(&$WikiDir,
    new PageStore('wikilib2.d/{$FullName}'),
    new PageStore('$FarmD/wikilib.d/{$FullName}'));
Siehe auch CustomPageStore.
$LocalDir
ist des Dateisystems Ort für das local/-Verzeichnis, das Dateien zur lokalen Anpassung und zu Individuelle Einstellungen pro Gruppe enthält. Die Variable wird typischerweise in einer WikiFarms farmconfig.php-Datei gesetzt. (Beachten Sie, dass die Farmkonfigurationsdateien immer in $FarmD/local/farmconfig.php erscheinen, unabhängig davon, wie $LocalDir gesetzt wird.)

Siehe auch

für die Liste aller Seiten


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

Zuletzt geändert:   PmWikiDe.PathVariablesam 16.12.2023
 PmWiki.PathVariablesam 16.12.2023