authors (intermediate)
This page describes the "variables" that are associated with pages. Page variables have the form {$variable}
, and can be used in page markup or in certain formatting strings in PmWiki. For example, the markup "{$Group}
" renders in this page as "PmWiki".
Note that these variables do not necessarily exist in the PHP code, because they have to be determined for a specific page. (However, they are usable in FmtPageName strings.)
There is also the form {pagename$variable}
, which returns the value of the variable for another page. For example, "{MarkupMasterIndex$Title}
" displays as "Markup Master Index".
The page variables defined for PmWiki are:
{$Group}
- page's group name, as in "PmWiki"
{$Groupspaced}
- spaced group name, as in "Pm Wiki"
{$DefaultGroup}
- default group name, as in "Main"
{$SiteGroup}
- default group name for e.g. RecentChanges, as in "Site"
{$Name}
- page name, as in "PageVariables"
{$Namespaced}
- spaced page name, as in "Page Variables"
{$DefaultName}
- name of default page, as in "HomePage"
{$FullName}
- page's full name, as in "PmWiki.PageVariables"
{$Title}
- page title (may differ from Name), as in "Page-specific Variables"
{$Titlespaced}
- title/spaced page name, as in "Page-specific Variables"
{$Description}
- page's description from the (:description:)
markup, as in "Documentation for "variables" that are associated with pages."
{$LastModified}
- date page was edited, as in "June 23, 2006, at 04:02 PM"
{$LastModifiedBy}
- page's last editor, as in "Pico"
{$LastModifiedHost}
- IP of page's last editor, as in "12.33.45.37"
{$LastModifiedSummary}
- Summary from last edit, as in "Supplied "as in" example for {$ScriptUrl}
"
{$LastModifiedSummary}
with [=
and =]
to avoid having PmWiki process any markup that may be contained in the summary.
{$PageUrl}
- page's url, as in "//fabien.benetou.fr/PmWiki/PageVariables"
{$Action}
- page's url action argument, as in "browse"
In addition to the above, there are some page-invariant variables available through this markup:
{$Author}
- the name of the person currently interacting with the site, as in ""
{$AuthId}
- current authenticated id, as in "" Please note the lower case 'd'. {$AuthID}
returns nothing
{$Version}
- PmWiki version, as in "pmwiki-2.2.145"
{$VersionNum}
- The internal version number, as in "2002145"
{$ScriptUrl}
- The url to the pmwiki script, as in "//fabien.benetou.fr"
You may add custom page variables as a local customization. In a local configuration file or a recipe script, use the variable $FmtPV
:
$FmtPV['$VarName'] = "'variable definition'"; $FmtPV['$CurrentSkin'] = '$GLOBALS["Skin"]';
Defines new Page Variable of name $CurrentSkin, which can be used in the page with {$CurrentSkin}
(also for Conditional markup). It's necessary to use the single quotes nested inside double-quotes as shown above (preferred) or a double-quoted string nested inside single-quotes like '"this"'
.
Making a {$WikiTitle}
markup doesn't quite follow the formula above. Instead you need to use
$FmtPV['$WikiTitle'] = '$GLOBALS["WikiTitle"]';
<< Conditional markup | Documentation Index | Markup master index >>
Is there a variable like $LastModified, but which shows me the creation time?
No, but you can create one in config.php. For instance:
# add page variable {$PageCreationDate} in format yyyy-mm-dd $FmtPV['$PageCreationDate'] = 'strftime("%Y-%m-%d", $page["ctime"])';
This page may have a more recent version on pmwiki.org: PmWiki:PageVariables, and a talk page: PmWiki:PageVariables-Talk.