When dealing with file or path variables, one has to recognize the difference between working with URLs and files on disk. For example:
Note that a browser needs a URL (https://example.com/pmwiki/pub) while an include statement requires a server file path ($FarmD/scripts/something.php).
pmwiki.php
and the scripts/
directory). This directory is automatically determined by pmwiki.php
when it runs, and can be used to distinguish the farm's cookbook/
and pub/
subdirectories from a field's subdirectories.
pub
directory for an entire farm. It defaults to the same value as $PubDirUrl.
$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');
pub
directory, and the farm's pub
directory, you may want to add these lines to your local/config.php
file (as described in Cookbook:SharedPages):
farm.css
to all wikis
$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');
$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');
pub/skins
directory, and the program will find them.
pub
directory. That directory contains all the files and subdirectories that must be directly accessible from a browser (e.g. CSS and HTML files). Most prominent here is the skins
subdirectory.
$ScriptUrl = 'http://'.$_SERVER['HTTP_HOST'].'/pmwiki/pmwiki.php'; $PubDirUrl = 'http://'.$_SERVER['HTTP_HOST'].'/pmwiki/pub';
https://www.pacificbulbsociety.org/pbswiki/index.php
pub/skins/
' directory). This variable is typically used inside of a skin .tmpl
file to provide access to .css
files and graphic images associated with the skin. See security note regarding use.
scripts/skins.php
to be the base path of the current skin's directory (i.e., within a 'pub/skins/
' directory). This variable is typically used inside of a skin .tmpl
file to provide access to secondary files. See security note regarding use.
wiki.d/
is merely to simplify things for the administrator.
wiki.d/
), or something more advanced such as a MySQL backend or a .dbm-file. Do not confuse this variable with $WorkDir; the reason that both $WorkDir and $WikiDir refer by default to the directory wiki.d/
is merely to simplify things for the administrator.
$WikiDir = new PageStore('wiki.d/$Group/$FullName');
to the start of your config file. [2]
wiki.d/
and wikilib.d/
, but can be changed to look other places.
$WikiLibDirs = array(&$WikiDir);
## for any page name, use the version located in wiki.d if it exists, ## use the version located in wikilib2.d, if a wiki.d version does not, and ## the version located in wikilib.d, if neither of the above exists $WikiLibDirs = array(&$WikiDir, new PageStore('wikilib2.d/{$FullName}'), new PageStore('$FarmD/wikilib.d/{$FullName}'));
local/
directory, holding local customization and group customizations files. Typically set in a WikiFarm's farmconfig.php
. (Note that farm configuration files always occur in $FarmD/local/farmconfig.php
, regardless of any setting for $LocalDir.)
This page may have a more recent version on pmwiki.org: PmWiki:PathVariables, and a talk page: PmWiki:PathVariables-Talk.