TemplatedPageList

From Wiki4Intranet
Jump to: navigation, search

This is Yet Another Page Listing extension. It is similar to DynamicPageList & company (Intersection / Wikimedia's DPL, 3rd party's DPL, SubPageList, SubPageList2, etc), but the code is simpler and the functionality is more advanced. Initially, it was just an improved SubPageList2.

Features:

  • (Main feature) <subpagelist> tag produces a simple or templated list of pages selected by dynamic conditions.
  • {{#getsection|Title|section number}} parser function for extracting page sections by number.
  • Automatic AJAX display of subpages everywhere.

Details:

Automatic subpage listing

TemplatedPageList can add a simple link to each page, and when clicked, this link displays list of all subpages of current page.

$egSubpagelistAjaxNamespaces = array(NS_MAIN => true); setting enables this on namespaces specified.

$egSubpagelistAjaxDisableRE = "regexp"; is a regexp disables this on pages whose title match it.

<subpagelist> syntax

Syntax is backwards compatible with Wikimedia's DynamicPageList syntax, except for 'firstcategorydate' related stuff. The text inside <subpagelist> is preprocessed, so you can use templates, magic words and parser functions inside it. Options are specified one per line.

Open tag

<subpagelist> (you can also use <DynamicPageList> or <subpages> for compatibility)

Page selection

namespace = Main|Talk|...
Restrict list to some namespaces
category = A|B|C
category = D|E
Restrict page list to pages which are in one of these categories. This option may be specified multiple times, following occurrences will be appended as a conjunction, i.e., the resulting expression will be (A or B or C) & (D or E). This is compatible with Wikimedia's DynamicPageList syntax, but allows more complex queries.
notcategory = A
Exclude pages which are in category A
parent = P
Restrict listing to subpages of P
level = L or MIN..MAX
Set wanted subpage nesting levels (i.e. number of '/' in title) it must be equal to L or be within MIN..MAX.
deepness = D or MIN..MAX
Set wanted subpage nesting levels, relative to parent.
ignore = L1|L2|...
Ignore pages which match L1 or L2 or ... LIKE patterns:
  • '\_' and ' ' match single space
  • '_' matches any single character
  • '%' matches any substring
  • '\%' matches single '%' character
redirect = yes|no
restring listing to redirect or non-redirect pages

Ordering

order|ordermethod = Y1 [asc|desc],Y2 [asc|desc],...
Sort pages by Y1,Y2,..., asc|desc can be specified right after Yi, each Yi is one of:
  • title
  • titlewithoutnamespace
  • lastedit
  • user
  • creation|firstedit
  • length|size
  • popularity|pagecounter
order = ASC or DESC
Ascending or descending sort order for all Yi (compatibility)
count|limit = N
Show at most N pages
offset = M
Skip first M pages

Output

template = X
Use template:X for output. The template will be preprocessed just like when included into listed article. I.e. all standard MediaWiki magic variables ({{PAGENAME}} {{REVISIONDAY}} etc) will generate values corresponding to listed articles. Additionally, the following parameters are passed to this template:
{{{index}}}  
list index, beginning at 0
{{{number}}}  
list index, beginning at 1
{{{odd}}}  
is {{{number}}} odd? (1 or 0)
{{{ns_N}}}  
N is namespace index, value is 1
{{{title}}}  
full title
{{{title_rel}}} 
title relative to parent specified in options
suppresserrors|noerrors|silent = true
Suppress errors.

Close tag

</subpagelist>