%audience% authors (intermediate) (:title Page-specific Variables:) (:description Documentation for "variables" that are associated with pages. :) [[#desc]]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 "{$Group}". 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 "{MarkupMasterIndex$Title}". !! Default page variables The page variables defined for PmWiki are: ->[@{$Group}@] - page's group name, as in "`{$Group}" ->[@{$Groupspaced}@] - spaced group name, as in "{$Groupspaced}" ->[@{$DefaultGroup}@] - default group name, as in "{$DefaultGroup}" ->[@{$SiteGroup}@] - default group name for e.g. RecentChanges, as in "{$SiteGroup}" ->[@{$Name}@] - page name, as in "`{$Name}" ->[@{$Namespaced}@] - spaced page name, as in "{$Namespaced}" ->[@{$DefaultName}@] - name of default page, as in "`{$DefaultName}" ->[@{$FullName}@] - page's full name, as in "`{$FullName}" ->[@{$Title}@] - page title (may differ from Name), as in "{$Title}" ->[@{$Titlespaced}@] - title/spaced page name, as in "{$Titlespaced}" ->[@{$Description}@] - page's description from the [@(:description:)@] markup, as in "{$Description}" ->[@{$LastModified}@] - date page was edited, as in "{$LastModified}" ->[@{$LastModifiedBy}@] - page's last editor, as in "{$LastModifiedBy}" ->[@{$LastModifiedHost}@] - IP of page's last editor, as in "{$LastModifiedHost}" ->[@{$LastModifiedSummary}@] - Summary from last edit, as in "{$LastModifiedSummary}" -->%note% Note: Enclose [@{$LastModifiedSummary}@] with [@[=@] and [@=]@] to avoid having PmWiki process any markup that may be contained in the summary. ->[@{$PageUrl}@] - page's url, as in "{$PageUrl}" ->[@{$Action}@] - page's url action argument, as in "{$Action}" 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 "{$Author}" ->[@{$AuthId}@] - current authenticated id, as in "{$AuthId}" %red%Please note the lower case 'd'. [@{$AuthID}@] returns nothing ->[@{$Version}@] - PmWiki version, as in "{$Version}" ->[@{$VersionNum}@] - The internal version number, as in "{$VersionNum}" ->[@{$ScriptUrl}@] - The url to the pmwiki script, as in "{$ScriptUrl}" !! Custom page variables 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"]'; @] !! See also * [[Cookbook:More custom page variables]] * [[PmWiki.Variables]] — about variables internal to PmWiki. * [[PmWiki.MarkupMasterIndex]] — complete list of PmWiki markups. %trail% <<|[[Documentation Index]]|>> >>faq<< [[#faq]] Q:Is there a variable like $LastModified, but which shows me the creation time? A: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"])';@]