Basic Variables
< Notify | Variables | Page Variables >
Where the variables are available as wiki markup they are shown as Variable value "{$VariableName}
".
- %apply=item id=As Spaced Function%
$AsSpacedFunction
- The name of the function used to convert Wiki Words into normal, spaced strings. Defaults to '
As Spaced
'. $AsSpacedFunction = 'MyAsSpaced';
$Author
is currently ""
:⚠ $Author : Set to the current reader, who is potentially an author ([[PmWiki:AuthoringPhilosophy|see discussion]]). See also $
Enable Post Author Required.
- %apply=item id=Author Group%
$AuthorGroup
- The Wiki Group for user profiles. Defaults to '
Profiles
'. This variable is implicit in the markup[[~AuthorName]]
$AuthorGroup = 'Users';
- %apply=item id=Auth Id%
$AuthId
- For sites using user-based authorization, tracks the "reader" or login name.
SessionAuth($pagename);
if( isset($AuthId) ) { // this person has been authenticated
- %apply=item id=Auth Pw%
$AuthPw
- Request for documentation, meanwhile see AuthId vs AuthPw.
SessionAuth($pagename);
if( isset($AuthPw) ) { // this person has entered a password
$BaseName
is currently "Pm Wiki.Basic Variables"
- %apply=item id=Base Name%
$BaseName
- %apply=item id=Base Name Patterns%
$BaseNamePatterns
- Allows population of the
{$BaseName}
Page Variable. The key to the hash is the pattern to be replaced and the value is the replacement string. # If {$FullName} is 'Group.Page-Draft' then {$BaseName} is 'Group.Page' $BaseNamePatterns['/-Draft$/'] = ''; # If {$FullName} is 'Comments-Group.Page' then {$BaseName} is 'Group.Page' $BaseNamePatterns['/^Comments-/'] = '';
- %apply=item id=Category Group%
$CategoryGroup
- The Wiki Group used for categories. Defaults to '
Category
'. (See Categories). This variable is implicit in the markup[[!CategoryName]]
- %apply=item id=Cookie Prefix%
$CookiePrefix
- A string prefix to be prepended to cookies set from Pm Wiki scripts. It defaults to '', but can be set to a different value to avoid conflicts with similar-named cookies from other applications, or to allow multiple wikis from the same domain to store separate cookies.
$CookiePrefix = 'pmwiki_'; # set cookie prefix to 'pmwiki_'
- If you have a WikiFarm, use the following in each field's
config.php
to get a unique prefix for each field in the farm, thus isolating each field's cookies.
- If you have a WikiFarm, use the following in each field's
$CookiePrefix = substr($tmp = md5(__FILE__), 0, 5).'_';
$DefaultGroup
is currently "Main"
- %apply=item id=Default Group%
$DefaultGroup
- WikiGroup used by default (on startup) when no group is specified in the URL.
$DefaultName
is currently "Home Page"
- %apply=item id=Default Name%
$DefaultName
- Name of the default Home Page of each Wiki Group. Used when the group doesn't have a page with the same name as the group.
- Note that the behavior will differ based on whether the page exists or not. Probably you want to alter
⚠ $PagePathFmt in addition to $
Default Name if you really want it to take effect.
$DefaultPage
re the order how this must be defined within your (farm)config.php
scripts - this must be set prior to any call of ResolvePageName()
.
:⚠ $DefaultPage:Startup page when PmWiki is called without a specified page, normally ''@@$
Default Group.$DefaultName
@@''.
⚠ $DefaultGroup@@, @@$
Default Name
and $DefaultPage
variables to work, they should be defined in the beginning of (farm)config.php
, before any call to the function Resolve Page Name()
. This means, before any script from Pm Wiki and before any recipe that might be using this function. This also means it cannot be set in a per-page or per-group customization script - Resolve Page Name()
is called before these are loaded.
- Please note that this variable is intended to be set in
(farm)config.php
, not in individual groups. Trying to use different
or⚠ $DefaultName@@, @@$
Default Page$PagePathFmt
- %apply=item id=Enable Local Config%
$EnableLocalConfig
- Allows/disables
local/config.php
customizations (usually for a farm's wikis). Can be set to zero inlocal/farmconfig.php
to prevent the farm's wikis'local/config.php
from being loaded. $EnableLocalConfig = 0; # disable PmWiki's local/config
- %apply=item id=Enable Std Config%
$EnableStdConfig
- Disables
scripts/stdconfig.php
and a large part of the core functionalities provided by the scripts in thepmwiki/scripts
directory and outlined in the core documentation, unless included by your own local configuration (notably core markup rules, page history, skins, uploads). Allows you to completely reshape the way Pm Wiki behaves, if you need to. $EnableStdConfig = 0; # disable many standard features
- %apply=item id=Enable PG Cust%
$EnablePGCust
- Allows/disables per-page and per-group customizations. Can be set to zero in any local customization file to prevent remaining page/group customizations from being loaded.
$EnablePGCust = 0; # turn off per-page/group configs
:⚠ $EnableBaseNameConfig:When enabled, and if the page has a different base page (per $
Base Name Patterns), will include the local configuration for the base page. For example, if the page is "Group.Page-Draft", this would try to include the file local/Group.Page.php
in addition to local/Group.Page-Draft.php
.
$EnableBaseNameConfig = 1; # include basename configuration
:⚠ $EnableRedirect:When enabled (default), causes page redirects to automatically be performed by the browser. Setting $
Enable Redirect to zero causes Pm Wiki to pause and issue a "Redirect to link" message instead. This is sometimes useful when debugging recipes to be able to see the results of actions before page redirections occur. Not to be confused with $EnableRedirectQuiet
.
- %apply=item id=Enable Wiki Words%
$EnableWikiWords
- Enable WikiWord processing.
- %apply=item id=Enable WS Pre%
$EnableWSPre
- Enables a markup rule that causes lines with leading spaces to be treated as sections of preformatted text. If set to a value greater than 1, indicates the minimum number of leading spaces required for this treatment.
$EnableWSPre = 1; # leading spaces are preformatted text
$EnableWSPre = 0; # leading spaces are normal lines of text
$EnableWSPre = 4; # 4+ spaces are preformatted text
:⚠ $FTimeFmt:Can be used to override the default date format used by the "@@ftime@@" function. The default $
F Time Fmt is $TimeFmt
. (See Markup Expressions.)
- %apply=item id=Group Pattern%
$GroupPattern
- The regular expression pattern used for valid WikiGroup name specifications. Defaults to allowing any group name beginning with an uppercase letter, but can be set to limit the valid group names (see Cookbook:LimitWikiGroups).
# limit groups to Site, SiteAdmin, PmWiki, and MyGroup
$GroupPattern = '(?:Site|SiteAdmin|PmWiki|MyGroup)';
#for case-sensitive group names, note the ?-i switch:
$GroupPattern = '(?-i:Site|SiteAdmin|PmWiki|MyGroup)';
- %apply=item id=Link Wiki Words%
$LinkWikiWords
- If set, then bare Wiki Words in a page are automatically linked to pages of the same name. Note that this value can also be affected by the
(:linkwikiwords:)
and(:nolinkwikiwords:)
directives. $LinkWikiWords = 1; # turn on WikiWord links
$LinkWikiWords = 0; # disable WikiWord links
- Note, this setting requires Wiki Words to be enabled, see
$EnableWikiWords
. - %apply=item id=Logout Redirect Fmt%
$LogoutRedirectFmt
- Identifies the page to which the visitor should be sent after an
?action=logout
. Defaults to the current page. $LogoutRedirectFmt = 'Site.Logout'; # ?action=logout target
- %apply=item id=Logout Cookies%
$LogoutCookies
- An array of cookie names to be removed when
?action=logout
is invoked. - %apply=item id=Name Pattern%
$NamePattern
- The regular expression pattern used for valid page names. Defaults to allowing pages beginning with an uppercase letter or digit, followed by sequences of alphanumeric characters, hyphens, and underscores.
$pagename
- A variable that gives the name of the current page.
$pagename=$GLOBALS['MarkupToHTML']['pagename'];
global $pagename;
# if you use it inside a function
$pagename = ResolvePageName($pagename);
$pagename
, page variables become accessible:
$page = PageVar($pagename, '$FullName'); # =$pagename $group = PageVar($pagename, '$Group'); $name = PageVar($pagename, '$Name');
- %apply=item id=Page Path Fmt%
$PagePathFmt
- An array controlling how the default group home-page name will be determined.
- Please note that this variable is intended to be set in
(farm)config.php
, not in individual groups. Trying to use different
or⚠ $DefaultName@@, @@$
Default Page
settings in different groups will cause cross-group linking anomalies.$PagePathFmt
$PagePathFmt = array('{$Group}.$1','$1.$1','$1.{$DefaultName}');
$DefaultName
to actually be the name of your group home-pages:
$PagePathFmt = array('{$Group}.$1','$1.{$DefaultName}','$1.$1');
Groupname.Groupname
page does exist but Groupname.Defaultname
does not exist, then Groupname.Groupname
will still take precedence. You may remove the '⚠ $1.$
1
' entirely to require Groupname.Defaultname
to be the group homepage - that would look like this:
$PagePathFmt = array('{$Group}.$1','$1.{$DefaultName}');
$SiteGroup
is currently "Site"
- %apply=item id=Site Group%
$SiteGroup
- Default group for storing configuration and utility pages such as Site.Search, Site.EditForm, Site.PageNotFound, etc.
- %apply=item id=Site Admin Group%
$SiteAdminGroup
- Default group for locked administrative pages such as SiteAdmin.AuthList, SiteAdmin.AuthUser, SiteAdmin.ApprovedUrls, etc, defaults to '
Site Admin
'. $Skin
- The name of the directory containing the skin (theme) files, default "pmwiki". See Skins.
:⚠ $SpaceWikiWords:If set, then WikiWords in pages are automatically spaced according to $
As Spaced Function. Note that this value can also be affected by the (:spacewikiwords:)
and (:nospacewikiwords:)
directives.
$SpaceWikiWords = 1; # turn on WikiWord spacing
$SpaceWikiWords = 0; # turn off WikiWord spacing
:⚠ $TimeFmt: The format to use for dates and times, in [[https://www.php.net/manual/en/function.strftime.php | %hlt php%@@strftime()@@]] format. The default value is <code class='escaped'>'%B %d, %Y at %I:%M %p'</code>, which gives dates of the form "September 8, 2005 at 10:57 PM". Formats $
Current Time variable.
$TimeFmt = '%B %d, %Y'; # dates as "September 8, 2005"
$TimeFmt = '%Y-%m-%d'; # dates as "2005-09-08"
- %apply=item id=Enable F Time New%
$EnableFTimeNew
- If set to 1, enables the new functions to format dates and times for PHP before 8.1. This allows you to preview the outputs of dates and times, for example in the page footer, in Recent Changes and page histories, or with the
{(ftime)}
markup expression. See explanation at Functions#PSFT. (For PHP 8.1, strftime() is deprecated, and the new functions are enabled by default.)
$Version
is currently "pmwiki-2.3.35"
$Version
- A string representing the release version of Pm Wiki.
$VersionNum
is currently "2003035"
- %apply=item id=Version Num%
$VersionNum
- A number representing the release version of Pm Wiki,
with the major and minor release components padded with zeroes to
produce three digits. Thus, release "pmwiki-2.1.40" will have
$VersionNum
set to 2001040. The first digit is a 2, the next three digits are the major release number, and the last three digits are the minor release number. Beta releases use 900-999 for the minor release number. Thus:2.1.0 2001000 2.1.1 2001001 ... 2.1.27 2001027 2.2.0-beta1 2001901 2.2.0-beta2 2001902 ... 2.2.0-beta18 2001918 ... 2.2.0 2002000
- %apply=item id=Wiki Word Pattern%
$WikiWordPattern
- The pattern that describes a Wiki Word.
- %apply=item id=Enable Relative Page Vars%
$EnableRelativePageVars
- This setting controls how Page variables in included pages are understood by Pm Wiki.
$EnableRelativePageVars
= 1; # Pm Wiki current default
In this case{$Name}
displays the name of the physical page where it written. If{$Name}
is in an included page, it will display the name of the included page. (This is currently Pm Wiki's default.)$EnableRelativePageVars
= 0; # revert to previous default
In this case{$Name}
displays the name of the currently browsed page. Even if{$Name}
is in an included page, it will display the name of the browsed page. This was Pm Wiki's default in versions 2.2.8 and earlier, and changed in 2.2.9, but you can revert it back with this line in config.php.-
{*$Name}
with an asterisk always displays the name of the currently browsed page, regardless of$EnableRelativePageVars
.
Categories: PmWiki Developer
< Notify | Variables | Page Variables >
This page may have a more recent version on pmwiki.org: PmWiki:BasicVariables, and a talk page: PmWiki:BasicVariables-Talk.