When dealing with file or path variables, one has to recognize the difference between working with URLs and files on disk. For example:
$ScriptUrl
and $PubDirUrl
variables are used to tell a browser, connecting via the webserver, how to execute the pmwiki script ($ScriptUrl
) and the base url for getting files from PmWiki's pub/ directory ($PubDirUrl
).
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).
$FarmD
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.
$UrlScheme
$FarmPubDirUrl
pub
directory for an entire farm. It defaults to the same value as $PubDirUrl
.
$PageCSSListFmt
$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');
$FarmPubDirUrl
for CSS configuration files. If you wish to be able to place CSS configuration files in both the field's 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.
$PubDirUrl
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';
$ScriptUrl
$ScriptUrl
on its own, but sometimes an admin needs to set it explicitly because of URL manipulations by the webserver (such as Cookbook:CleanUrls, mod_rewrite, bizarre PHP configurations, and so on).
$SkinDir
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.
$SkinDirUrl
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.
$WorkDir
$WikiDir
; the reason that both $WorkDir
and $WikiDir
refer by default to the directory wiki.d/
is merely to simplify things for the administrator.
$WikiDir
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]
$WikiLibDirs
wiki.d/
and wikilib.d/
, but can be changed to look other places.
$WikiDir
.)
$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}'));
$LocalDir
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.