« Layout Variables | PmWiki.Variables | Link Variables »

When dealing with file or path variables, one has to recognize the difference between working with URLs and files on disk. For example:

  • The include() statements are used to include other files (on disk) into the currently running PmWiki script. Thus they require paths on the server’s filesystem.
  • The $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 (http://www.example.com/pmwiki/pub) while an include statement requires a server file path ($FarmD/scripts/something.php).

$FarmD
The directory on the server where the farm is located (i.e., the directory containing the farm’s copy of 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.

$FarmPubDirUrl
is the url that refers to the pub directory for an entire farm. It defaults to the same value as $PubDirUrl.

$PageCSSListFmt
is an associative array which PmWiki uses to find any local css configuration files. It consists of a set of (key,value) pairs. The key is a possible path to a file on disk holding the css data, while the value is the coresponding URL for that file. They keys are tested in turn, and for each named file that exists, the browser is instructed to load the corresponding URL. The default value for this variable is:

        array( 
          ‘pub/css/local.css’ => ‘$PubDirUrl/css/local.css’,
          ‘pub/css/PmWiki.css’ => ‘$PubDirUrl/css/PmWiki.css’,
          ‘pub/css/PmWiki.PathVariables.css’ => ‘$PubDirUrl/css/PmWiki.PathVariables.css’);

Note that the default (as of version pmwiki-2.1.beta26) makes no reference to $FarmPubDirUrl. 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):

        $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’);

$PubDirUrl
is the URL that refers to the 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
is the URL that you want people’s browsers to use when accessing PmWiki, either as a field or farm. It’s used whenever PmWiki needs to generate a link to another PmWiki page or action. PmWiki is usually fairly good about “guessing” the correct value for $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).

$SkinDirUrl
Set by scripts/skins.php to be the base url 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 .css files and graphic images associated with the skin.

$UploadDir
The directory where uploads are to be stored. Defaults to uploads/ in the pmwiki directory, but can be set to any location on the server. This directory must be writable by the webserver process if uploading is to occur.

See also

Last edited by HaganFox.   Page last modified on March 09, 2006

Legal Information |  Designed and built by Emergency Digital. | Hosted by Steadfast Networks