aboutsummaryrefslogtreecommitdiff
path: root/wikilib.d/PmWiki.BasicVariables
blob: cb8542a775bfcb6ef6f807c1c592b87d88fd0efe (plain)
1
2
3
4
5
6
7
8
9
version=pmwiki-2.3.36 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
csum=$EnableCommonEnhancements (+1015)
name=PmWiki.BasicVariables
rev=122
targets=PmWiki.Variables,PmWiki.BasicVariables,PmWiki.AuthoringPhilosophy,PmWiki.EditVariables,PmWiki.AuthUser,PmWiki.Categories,PmWiki.WikiFarms,PmWiki.WikiGroup,PmWiki.SecurityVariables,Cookbook.DeObMail,PmWiki.LayoutVariables,PmWiki.UploadVariables,PmWiki.GroupCustomizations,PmWiki.LocalCustomizations,PmWiki.LinkVariables,PmWiki.WikiWord,PmWiki.MarkupExpressions,Cookbook.LimitWikiGroups,Site.Search,Site.EditForm,Site.PageNotFound,SiteAdmin.AuthList,SiteAdmin.AuthUser,SiteAdmin.ApprovedUrls,PmWiki.Skins,PmWiki.Functions,PmWiki.PageVariables,Category.PmWikiDeveloper,!PmWikiDeveloper
text=(:Summary: core variables:)%0a%0aWhere the [[variables]] are available as wiki markup they are shown as ''Variable value'' "%25pmhlt%25[@{$VariableName}@]".%0a%0a:$AsSpacedFunction:The name of the function used to convert WikiWords into normal, spaced strings.  Defaults to '@@AsSpaced@@'.%0a:      :%25hlt php%25[@$AsSpacedFunction = 'MyAsSpaced';@]%0a%0a%25rfloat%25$Author is currently "{$Author}"%0a:$Author : Set to the current reader, who is potentially an author ([[PmWiki:AuthoringPhilosophy|see discussion]]). See also $EnablePostAuthorRequired.%0a%0a:$AuthorGroup: The WikiGroup for user profiles. Defaults to '@@Profiles@@'. This variable is implicit in the markup %25pmhlt%25[@[[~AuthorName]]@]%0a:      :%25hlt php%25[@$AuthorGroup = 'Users';@]%0a%0a:$AuthId: For sites using [[AuthUser | user-based authorization]], tracks the "reader" or login name.%0a:      :%25hlt php%25[@SessionAuth($pagename);@]%0a:      :%25hlt php%25[@if( isset($AuthId) ) { // this person has been authenticated@]%0a%0a:$AuthPw: Request for documentation, meanwhile see [[https://www.pmwiki.org/pipermail/pmwiki-users/2006-August/030386.html|AuthId vs AuthPw]].%0a:      :%25hlt php%25[@SessionAuth($pagename);@]%0a:      :%25hlt php%25[@if( isset($AuthPw) ) { // this person has entered a password@] %0a%0a%25rfloat%25$BaseName is currently "{$BaseName}"%0a:$BaseName:%0a:$BaseNamePatterns:Allows population of the %25pmhlt%25[@{$BaseName}@] PageVariable.  The key to the hash is the pattern to be replaced and the value is the replacement string.%0a:      :%25hlt php%25[@%0a# If {$FullName} is 'Group.Page-Draft' then {$BaseName} is 'Group.Page'%0a$BaseNamePatterns['/-Draft$/'] = '';%0a# If {$FullName} is 'Comments-Group.Page' then {$BaseName} is 'Group.Page'%0a$BaseNamePatterns['/^Comments-/'] = '';@]%0a%0a:$CategoryGroup: The WikiGroup used for categories. Defaults to '@@Category@@'.  (See [[Categories]]). This variable is implicit in the markup %25pmhlt%25[@[[!CategoryName]]@]%0a%0a:$CookiePrefix: A string prefix to be prepended to cookies set from PmWiki 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.%0a:      :%25hlt php%25[@$CookiePrefix = 'pmwiki_';     # set cookie prefix to 'pmwiki_'@]%0a::If you have a [[WikiFarm(s)]], 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.:%0a:      :%25hlt php%25[@$CookiePrefix = substr($tmp = md5(__FILE__), 0, 5).'_';@]%0a%0a%25rfloat%25$DefaultGroup is currently "{$DefaultGroup}"%0a:$DefaultGroup:[[WikiGroup]] used by default (on startup) when no group is specified in the URL.  %0a%0a%25rfloat%25$DefaultName is currently "{$DefaultName}"%0a:$DefaultName:Name of the default HomePage of each WikiGroup.  Used when the group doesn't have a page with the same name as the group.%0a:            :Note that the behavior will differ based on whether the page exists or not. Probably you want to alter $PagePathFmt in addition to $DefaultName if you really want it to take effect.%0a-> Note: See comment below under $DefaultPage re the order how this must be defined within your @@(farm)config.php@@ scripts - this must be set prior to any call of %25hlt php%25[@ResolvePageName()@].%0a%0a:$DefaultPage:Startup page when PmWiki is called without a specified page, normally ''@@$DefaultGroup.$DefaultName@@''.%0a-> Note: for @@$DefaultGroup@@, @@$DefaultName@@ and @@$DefaultPage@@ variables to work, they should be defined in the beginning of @@(farm)config.php@@, before any call to the function %25hlt php%25@@ResolvePageName()@@. This means, before any script from PmWiki 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 - %25hlt php%25@@ResolvePageName()@@ is called before these are loaded.%0a: : Please note that this variable is intended to be set in @@(farm)config.php@@, not in individual groups. Trying to use different @@$DefaultName@@, @@$DefaultPage@@ or@@ $PagePathFmt@@ settings in different groups will cause cross-group linking anomalies.%0a%0a:$EnableCommonEnhancements:This variable enables popular core functions for easier editing and review:%0a: : %25hlt php%25 @@$EnableCommonEnhancements = 1;@@%0a: : In this case, the following configuration options are enabled, unless they are already defined or disabled in config.php (click on each variable to learn more):%0a>>hlt php%3c%3c%0a    # Security + review changes%0a    $EnableCookieHTTPOnly = 1;%0a    $LinkFunctions['mailto:'] = 'ObfuscateLinkIMap'; # See Cookbook:DeObMail%0a    $EnableRCDiffBytes = 1;%0a    $EnableLocalTimes = 3;%0a    %0a    # Editing%0a    $EnablePreviewChanges = 1;%0a    $EnableMergeLastMinorEdit = 1;%0a    $EnableListIncludedPages = 1;%0a    $EnablePmSyntax = 2;%0a    $EnableEditAutoText = 1;%0a    $EnableGUIButtons = 1;%0a    $EnableGuiEditFixUrl = 220; # after external link button%0a%0a    # Documentation%0a    $PmTOC['Enable'] = 1;  $PmTOC['EnableBacklinks'] = 1;%0a    $EnableCopyCode = 1;%0a    %0a    # Uploads (if enabled)%0a    $EnableUploadDrop = 1;%0a    $EnableRecentUploads = 1;%0a    $EnableUploadVersions = 1;%0a>>%3c%3c%0a%0a:$EnableLocalConfig:Allows/disables @@local/config.php@@ customizations (usually for a farm's wikis).  Can be set to zero in @@local/farmconfig.php@@ to prevent the farm's wikis' @@local/config.php@@ from being loaded.%0a:      :%25hlt php%25[@$EnableLocalConfig = 0;    # disable PmWiki's local/config@]%0a%0a:$EnableStdConfig:Disables @@scripts/stdconfig.php@@ and a large part of the core functionalities provided by the scripts in the @@pmwiki/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 PmWiki behaves, if you need to.%0a:      :%25hlt php%25[@$EnableStdConfig = 0;      # disable many standard features@]%0a%0a%0a:$EnablePGCust:Allows/disables per-page and [[GroupCustomizations | per-group customizations]].  Can be set to zero in any [[local customization(s)]] file to prevent remaining page/group customizations from being loaded.%0a:      :%25hlt php%25[@$EnablePGCust = 0;         # turn off per-page/group configs@]%0a%0a:$EnableBaseNameConfig:When enabled, and if the page has a different base page (per $BaseNamePatterns), 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@@.%0a:      :%25hlt php%25[@$EnableBaseNameConfig = 1;  # include basename configuration@]%0a%0a:$EnableRedirect:When enabled (default), causes page redirects to automatically be performed by the browser.  Setting $EnableRedirect to zero causes PmWiki 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.%0a%0a:$EnableWikiWords:Enable [[WikiWord]] processing.%0a%0a:$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.%0a:      :%25hlt php%25[@$EnableWSPre = 1;            # leading spaces are preformatted text@]%0a:      :%25hlt php%25[@$EnableWSPre = 0;            # leading spaces are normal lines of text@]%0a:      :%25hlt php%25[@$EnableWSPre = 4;            # 4+ spaces are preformatted text@]%0a%0a:$FTimeFmt:Can be used to override the default date format used by the "@@ftime@@" function.  The default $FTimeFmt is $TimeFmt.  (See [[Markup Expressions]].)%0a%0a:$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).%0a:      :%25hlt php%25[@# limit groups to Site, SiteAdmin, PmWiki, and MyGroup@]%0a:      :%25hlt php%25[@$GroupPattern = '(?:Site|SiteAdmin|PmWiki|MyGroup)';@]%0a:      :%25hlt php%25[@#for case-sensitive group names, note the ?-i switch:@]%0a:      :%25hlt php%25[@$GroupPattern = '(?-i:Site|SiteAdmin|PmWiki|MyGroup)';@]%0a%0a:$LinkWikiWords:If set, then bare WikiWords in a page are automatically linked to pages of the same name.  Note that this value can also be affected by the %25pmhlt%25[@(:linkwikiwords:)@] and [@(:nolinkwikiwords:)@] directives.%0a:      :%25hlt php%25[@$LinkWikiWords = 1;           # turn on WikiWord links@]%0a:      :%25hlt php%25[@$LinkWikiWords = 0;           # disable WikiWord links@]%0a:      :Note, this setting requires WikiWords to be enabled, see $EnableWikiWords.%0a%0a:$LogoutRedirectFmt: Identifies the page to which the visitor should be sent after an [@?action=logout@].  Defaults to the current page.%0a:      :%25hlt php%25[@$LogoutRedirectFmt = 'Site.Logout';    # ?action=logout target@]%0a%0a:$LogoutCookies: An array of cookie names to be removed when [@?action=logout@] is invoked.%0a%0a:$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.  %0a%0a:$pagename: A variable that gives the name of the current page.%0a->To access inside a Markup callback function, use%0a-->%25hlt php%25[@$pagename=$GLOBALS['MarkupToHTML']['pagename'];@]%0a->It is also accessible via%0a-->%25hlt php%25[@global $pagename;@] # if you use it inside a function%0a-->%25hlt php%25[@$pagename = ResolvePageName($pagename);@]%0a->See [[PmWiki:LocalCustomizations#configphp-group-page|+]] for more information, including when it's possible to use this variable.%0a->Once you have $pagename, page variables become accessible:%0a-->%25hlt php%25[@%0a$page = PageVar($pagename, '$FullName'); # =$pagename%0a$group = PageVar($pagename, '$Group');%0a$name = PageVar($pagename, '$Name');%0a@]%0a%0a:$PagePathFmt: An array controlling how the default group home-page name will be determined.%0a: : Please note that this variable is intended to be set in @@(farm)config.php@@, not in individual groups. Trying to use different @@$DefaultName@@, @@$DefaultPage@@ or @@$PagePathFmt@@ settings in different groups will cause cross-group linking anomalies.%0a-> Default Setting:%0a-->%25hlt php%25[@$PagePathFmt = array('{$Group}.$1','$1.$1','$1.{$DefaultName}');@]%0a-> Setting to use if you wish $DefaultName to actually be the name of your group home-pages:%0a-->%25hlt php%25[@$PagePathFmt = array('{$Group}.$1','$1.{$DefaultName}','$1.$1');@]%0a-> Do note that if the @@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:%0a-->%25hlt php%25[@$PagePathFmt = array('{$Group}.$1','$1.{$DefaultName}');@]%0a%0a%25rfloat%25$SiteGroup is currently "{$SiteGroup}"%0a:$SiteGroup:Default group for storing configuration and utility pages such as [[Site.Search]], [[Site.EditForm]], [[Site.PageNotFound]], etc.%0a%0a:$SiteAdminGroup:Default group for locked administrative pages such as [[SiteAdmin.AuthList]], [[SiteAdmin.AuthUser]], [[SiteAdmin.ApprovedUrls]], etc, defaults to '@@SiteAdmin@@'.%0a%0a:$Skin:The name of the directory containing the skin (theme) files, default "pmwiki". See [[Skins]].%0a%0a:$SpaceWikiWords:If set, then WikiWords in pages are automatically spaced according to $AsSpacedFunction.  Note that this value can also be affected by the %25pmhlt%25[@(:spacewikiwords:)@] and [@(:nospacewikiwords:)@] directives.%0a:      :%25hlt php%25[@$SpaceWikiWords = 1;          # turn on WikiWord spacing@]%0a:      :%25hlt php%25[@$SpaceWikiWords = 0;          # turn off WikiWord spacing@]%0a%0a:$TimeFmt: The format to use for dates and times, in [[https://www.php.net/manual/en/function.strftime.php | %25hlt php%25@@strftime()@@]] format.  The default value is [@'%25B %25d, %25Y at %25I:%25M %25p'@], which gives dates of the form "September 8, 2005 at 10:57 PM". Formats $CurrentTime variable.%0a:      :%25hlt php%25[@$TimeFmt = '%25B %25d, %25Y';        # dates as "September 8, 2005"@]%0a:      :%25hlt php%25[@$TimeFmt = '%25Y-%25m-%25d';         # dates as "2005-09-08"@]%0a%0a%0a:$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 %25pmhlt%25[@{(ftime)}@] markup expression. See explanation at [[Functions#PSFT]]. (For PHP 8.1, strftime() is deprecated, and the new functions are enabled by default.)%0a%0a%0a%25rfloat%25$Version is currently "{$Version}"%0a:$Version: A string representing the release version of PmWiki.%0a%0a%25rfloat%25$VersionNum is currently "{$VersionNum}"%0a:$VersionNum: A number representing the release version of PmWiki,%0a with the major and minor release components padded with zeroes to%0a produce three digits.  Thus, release "pmwiki-2.1.40" will have $VersionNum set to 2001040.%0a%0a The first digit is a 2, the next three digits are the major%0a release number, and the last three digits are the minor release%0a number. Beta releases use 900-999 for the minor release number.%0a Thus:%0a--> [@%0a2.1.0          2001000%0a2.1.1          2001001%0a...%0a2.1.27         2001027%0a2.2.0-beta1    2001901%0a2.2.0-beta2    2001902%0a...%0a2.2.0-beta18   2001918%0a...%0a2.2.0          2002000%0a@]%0a%0a:$WikiWordPattern: The pattern that describes a WikiWord.%0a%0a:$EnableRelativePageVars:This setting controls how [[Page variables]] in included pages are understood by PmWiki.%0a: :%25hlt php%25@@$EnableRelativePageVars = 1; # PmWiki current default@@\\%0aIn this case %25pmhlt%25@@[={$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 PmWiki's default.)%0a: :%25hlt php%25@@$EnableRelativePageVars = 0; # revert to previous default@@\\%0aIn this case %25pmhlt%25@@[={$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 PmWiki'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.%0a: : %25pmhlt%25@@[={*$Name}=]@@ with an asterisk always displays the name of the currently browsed page, regardless of $EnableRelativePageVars.%0a%0aCategories: [[!PmWiki Developer]]
time=1723975967