PmWiki

Pagelist Variables

%apply=item id=Enable Page List Protect?%$EnablePageListProtect
When set to 1 (which is the default), causes (:pagelist:) and (:searchresults:) to exclude listing any pages for which the browser does not currently have read authorization. Setting this to zero means that read-protected pages can appear in a listing, but can also speed up searches considerably (because page permissions do not need to be checked).
%apply=item id=Page List Sort Cmp Function?%$PageListSortCmpFunction
The function used to compare values when ordering a page list, for historical reasons the default is ‘strcasecmp’ and sorts alphabetically and case insensitively. If you regularly order numbers or strings with numbers, you can set this variable to ‘strnatcasecmp’ and the list will be sorted according to a natural order, case insensitively:
$PageListSortCmpFunction = 'strnatcasecmp';# "natural" sorting of pagelists
Or you can write here the name of a custom function you have defined. This is the general sorting function, for specific needs you can create specific functions, see CustomPagelistSortOrder.
%apply=item id=Page List Var Fold Fn?%$PageListVarFoldFn
Page List? and Search terms, including page variable search terms are always case insensitive for the Latin alphabet. For international characters the page variable terms were case sensitive until PmWiki 2.2.115, and became case insensitive from 2.2.116 (like for the Latin characters). If your pagelists relied on the previous behavior, you can set here a function name that does not change the case of the international characters, for example $PageListVarFoldFn = 'strval';
%apply=item id=Search Patterns?%$SearchPatterns
An array of page name patterns to be required or excluded from search and pagelist results. In order to be included in a search listing or page listing, a page’s name must not match any pattern that is delimited by exclamation points (!) and must match all other patterns. See Cookbook:SearchPatterns.
# Limit all searches to Main group
$SearchPatterns['default'][] = '/^Main\\./';
# Exclude the Main group from search results
$SearchPatterns['default'][] = '!^Main\\.!';
# Exclude RecentChanges pages from search results
$SearchPatterns['default'][] = '!\\.(All)?RecentChanges$!';
# Prevent a page from listing itself in (:pagelist:) or (:searchresults:)
$SearchPatterns['default'][] = FmtPageName('!^$FullName$!', $pagename);
%apply=item id=Search Box Opt?%$SearchBoxOpt
For example $SearchBoxOpt ['target'] = '$DefaultGroup.Search';
%apply=item id=Search Box Input Type?%$SearchBoxInputType
The HTML “type” attribute for the search field. Default is “text” which is valid HTML4. If your skin uses HTML5, you can change this to “search”:
$SearchBoxInputType = “search”;
%apply=item id=Enable Page Index?%$EnablePageIndex
When set to 0, disables default indexing. By default PmWiki maintains a “link and word index” in $PageIndexFile which significantly speeds up categories, backlinks, and searches.
%apply=item id=Page Index File?%$PageIndexFile
The location of the “page index” file for (:pagelist:), defaults to $WorkDir/.pageindex.
%apply=item id=Page List Cache Dir?%$PageListCacheDir
The name of a writable directory where PmWiki can cache results of (:pagelist:) directives to speed up subsequent displays of the same list. Default is empty, which disables the pagelist cache.
# Enable pagelist caching in work.d/.pagelistcache
$PageListCacheDir = 'work.d/.pagelistcache';
%apply=item id=Page Search Form?%$PageSearchForm
The page to be used to format search results for ?action=search (unless the current page has a “searchresults” directive in it). This variable can be an array, in which case the first page found from the array is used.
# Simple use of page search form in the default group
$PageSearchForm = '$DefaultGroup.Search';
# Use Search page in current group if it exists, otherwise use Site.Search
$PageSearchForm = array('$Group.Search', '[=$[$SiteGroup/Search]=]');
%apply=item id=FPL Template Page Fmt?%$FPLTemplatePageFmt
The pages to be searched for a pagelist template specified by a fmt=#xyz parameter. Defaults to searching the current page, Site.LocalTemplates? and Site.PageListTemplates.
# PMWiki default setup
global $FPLTemplatePageFmt;
$FPLTemplatePageFmt = array(
    '{$FullName}', 
    '{$SiteGroup}.LocalTemplates', 
    '{$SiteGroup}.PageListTemplates');
It can be customized to look in other pages.
# Search a Group.Templates page as well as the Site templates
global $FPLTemplatePageFmt;
$FPLTemplatePageFmt = array(
    '{$Group}.Templates',
    '{$SiteGroup}.LocalTemplates',
    '{$SiteGroup}.PageListTemplates');
Or declare defaults for the template array:
# Search a Group.Templates page as well as the Site templates
global $FPLTemplatePageFmt;
SDV($FPLTemplatePageFmt, array('{$FullName}',
    '{$Group}.Templates',
    '{$SiteGroup}.LocalTemplates', '{$SiteGroup}.PageListTemplates')
   );
%apply=item id=Enable Undefined Template Vars?%$EnableUndefinedTemplateVars
This variable controls how undefined {$$Variable} is processed in includes and PageList templates. If set to 0 (default), undefined {$$Variable}s are removed from the included section or template. If set to 1, undefined {$$Variable}s are displayed as is, with $$… smiley. Note that PmWiki versions 2.2.13 and earlier kept unset include/template variables.
$EnableUndefinedTemplateVars = 0; # Delete unset raw template variables
$EnableUndefinedTemplateVars = 1; # Keep and print unset raw template variables


This page may have a more recent version on pmwiki.org: PmWiki:PagelistVariables, and a talk page: PmWiki:PagelistVariables-Talk.