<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.tfcmud.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Help%3ADPL</id>
	<title>Help:DPL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.tfcmud.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Help%3ADPL"/>
	<link rel="alternate" type="text/html" href="https://www.tfcmud.com/wiki/index.php?title=Help:DPL&amp;action=history"/>
	<updated>2026-05-03T10:34:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://www.tfcmud.com/wiki/index.php?title=Help:DPL&amp;diff=304&amp;oldid=prev</id>
		<title>Tynian: 1 revision: Import helps</title>
		<link rel="alternate" type="text/html" href="https://www.tfcmud.com/wiki/index.php?title=Help:DPL&amp;diff=304&amp;oldid=prev"/>
		<updated>2011-01-10T23:24:28Z</updated>

		<summary type="html">&lt;p&gt;1 revision: Import helps&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{H:h|Editor toc}}&lt;br /&gt;
[[mw:Extension:Intersection|DynamicPageList]] or DPL for short is a MediaWiki extension supporting intersections and other set operations of pages belonging to several categories.&lt;br /&gt;
&lt;br /&gt;
== Flavours ==&lt;br /&gt;
&lt;br /&gt;
Two versions of dynamic page lists (DPL) exist, an older variant using tags &amp;lt;tt&amp;gt;&amp;amp;lt;dynamicpagelist&amp;amp;gt;&amp;lt;/tt&amp;gt; plus &amp;lt;tt&amp;gt;&amp;amp;lt;/dynamicpagelist&amp;amp;gt;&amp;lt;/tt&amp;gt;,&lt;br /&gt;
and an advanced variant using tags &amp;lt;tt&amp;gt;&amp;amp;lt;dpl&amp;amp;gt;&amp;lt;/tt&amp;gt; plus &amp;lt;tt&amp;gt;&amp;amp;lt;/dpl&amp;amp;gt;&amp;lt;/tt&amp;gt;. A project can support none, one , or both of these two extensions,&lt;br /&gt;
see &amp;quot;parser extension tags&amp;quot; in [[Special:Version]].&lt;br /&gt;
&lt;br /&gt;
The advanced version covers all functions of the older variant, here only the latter is explained. For further details see the descriptions in &lt;br /&gt;
[[mw:Extension:Intersection|DynamicPageList]] and  [[mw:Extension:DynamicPageList2|DynamicPageList2]].&lt;br /&gt;
&lt;br /&gt;
== Operation ==&lt;br /&gt;
&lt;br /&gt;
In essence categories are sets of related pages, created by adding &amp;lt;tt&amp;gt;[&amp;amp;#91;Category:common property&amp;amp;#93;]&amp;lt;/tt&amp;gt; to the individual pages. In&lt;br /&gt;
addition [[Help:category|category]] pages are also ordinary pages in their first part with all features of normal pages, but their main purpose is to list&lt;br /&gt;
all pages belonging to the category. This changes as soon as &amp;lt;tt&amp;gt;[&amp;amp;#91;Category:common property&amp;amp;#93;]&amp;lt;/tt&amp;gt; is added or removed from one or more of the&lt;br /&gt;
individual pages, the members of this set.&lt;br /&gt;
&lt;br /&gt;
Watching the category page only tracks modifications to its first part (as for any ordinary page), but it doesn't show any additions or removals of&lt;br /&gt;
member pages. DPLs address this missing feature, they also allow to sort member pages by various criteria where categories only offer a crude &lt;br /&gt;
''sort key'' or alphabetical order.&lt;br /&gt;
&lt;br /&gt;
Simple DPLs start with &amp;lt;tt&amp;gt;&amp;amp;lt;dynamicpagelist&amp;amp;gt;&amp;lt;/tt&amp;gt; followed by one or more &amp;lt;tt&amp;gt;category=name&amp;lt;/tt&amp;gt; and optionally other parameter=value pairs,&lt;br /&gt;
and they are terminated by &amp;lt;tt&amp;gt;&amp;amp;lt;/dynamicpagelist&amp;amp;gt;&amp;lt;/tt&amp;gt;. For a similar construct see [[Help:inputbox|inputbox]].&lt;br /&gt;
&lt;br /&gt;
One (first) &amp;lt;tt&amp;gt;category=name&amp;lt;/tt&amp;gt; is required, and it's the base for some other attributes. Adding more &amp;lt;tt&amp;gt;category=name&amp;lt;/tt&amp;gt; restricts the DPL&lt;br /&gt;
to pages in the intersection of all specified categories.&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;tt&amp;gt;notcategory=name&amp;lt;/tt&amp;gt; pages in that category are removed from the DPL. So for categories A, B, and C use &amp;lt;tt&amp;gt;category=A&amp;lt;/tt&amp;gt; and &lt;br /&gt;
&amp;lt;tt&amp;gt;category=B&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;notcategory=C&amp;lt;/tt&amp;gt; for all pages in both A and B, but not C. And also not only in A, and not only in B. &lt;br /&gt;
&lt;br /&gt;
Two DPLs could be used to get a kind of union, the first DPL for category A, and the second DPL for category B without A, but real unions&lt;br /&gt;
require the advanced DPL features.&lt;br /&gt;
&lt;br /&gt;
== Restrictions ==&lt;br /&gt;
&lt;br /&gt;
The attribute &amp;lt;tt&amp;gt;namespace=&amp;lt;/tt&amp;gt; allows to restrict listed pages to a [[Help:namespace|namespace]] given by its number or name. Use '''0''' for the main namespace.&lt;br /&gt;
&lt;br /&gt;
The attribute &amp;lt;tt&amp;gt;redirects=&amp;lt;/tt&amp;gt; can be ''exclude'' (default) not listing any redirects belonging to the selected categories. With ''include'' redirects&lt;br /&gt;
are listed, and &amp;lt;tt&amp;gt;redirects=only&amp;lt;/tt&amp;gt; limits the DPL to only redirects.&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;tt&amp;gt;count=&amp;lt;/tt&amp;gt;''n'' the DPL is limited to the first ''n'' member pages as determined by the sort order (see below). The default is a system-wide&lt;br /&gt;
maximum, with two DPLs looking at the same set from both ends it's indirectly possible to determine if really all selected pages are shown (see below).&lt;br /&gt;
&lt;br /&gt;
== Output ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;tt&amp;gt;suppresserrors=true&amp;lt;/tt&amp;gt; to suppress error messages for an empty DPL, e.g. if the selected category doesn't exist.&lt;br /&gt;
&lt;br /&gt;
The default output &amp;lt;tt&amp;gt;mode=unordered&amp;lt;/tt&amp;gt; presents the DPL as unordered list, XHTML &amp;lt;tt&amp;gt;&amp;amp;lt;ul&amp;amp;gt;&amp;lt;/tt&amp;gt;, like Wiki list markup '''&amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
Similarly ''ordered'' results in numbered &amp;lt;tt&amp;gt;&amp;amp;lt;ol&amp;amp;gt;&amp;lt;/tt&amp;gt; output like Wiki list markup '''&amp;lt;tt&amp;gt;#&amp;lt;/tt&amp;gt;'''. Finally &amp;lt;tt&amp;gt;mode=none&amp;lt;/tt&amp;gt; presents&lt;br /&gt;
the DPL with one entry per line, terminated with &amp;lt;tt&amp;gt;&amp;amp;lt;br&amp;amp;#160;/&amp;amp;gt;&amp;lt;/tt&amp;gt;, roughly similar to Wiki list markup '''&amp;lt;tt&amp;gt;;&amp;lt;/tt&amp;gt;''' (semicolon).&lt;br /&gt;
&lt;br /&gt;
Especially in conjunction with &amp;lt;tt&amp;gt;namespace=&amp;lt;/tt&amp;gt; the attribute &amp;lt;tt&amp;gt;shownamespace=false&amp;lt;/tt&amp;gt; allows to suppress the output of the namespace.&lt;br /&gt;
&lt;br /&gt;
== Sorting ==&lt;br /&gt;
&lt;br /&gt;
DPLs are either sorted by the date of the addition to the first category (this is often '''not''' the date of the creation of the &lt;br /&gt;
individual page), the default &amp;lt;tt&amp;gt;ordermethod=categoryadd&amp;lt;/tt&amp;gt;, or by &amp;lt;tt&amp;gt;ordermethod=lastedit&amp;lt;/tt&amp;gt;, the date of the last modification of the&lt;br /&gt;
member pages.&lt;br /&gt;
&lt;br /&gt;
Sorting can be &amp;lt;tt&amp;gt;order=descending&amp;lt;/tt&amp;gt; (default, most recent first) or &amp;lt;tt&amp;gt;order=ascending&amp;lt;/tt&amp;gt;, allowing to look at the same set from both&lt;br /&gt;
ends in two DPLs (see above).&lt;br /&gt;
&lt;br /&gt;
== Dates ==&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;tt&amp;gt;addfirstcategorydate=true&amp;lt;/tt&amp;gt; the date of the addition to the first category is shown.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
''If the following example doesn't work where you read this page look at it on [[m:Help:DPL|Meta]].''&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;dynamicpagelist&amp;amp;gt;&lt;br /&gt;
 category=Reader handbook&lt;br /&gt;
 order=ascending&lt;br /&gt;
 ordermethod=lastedit&lt;br /&gt;
 mode=ordered&lt;br /&gt;
 shownamespace=false&lt;br /&gt;
 &amp;amp;lt;/dynamicpagelist&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This results in a numbered list of help pages, oldest first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dynamicpagelist&amp;gt;&lt;br /&gt;
category=Reader handbook&lt;br /&gt;
order=ascending&lt;br /&gt;
ordermethod=lastedit&lt;br /&gt;
mode=ordered&lt;br /&gt;
shownamespace=false&lt;br /&gt;
&amp;lt;/dynamicpagelist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;dynamicpagelist&amp;amp;gt;&lt;br /&gt;
 category=Handbook templates&lt;br /&gt;
 notcategory=Templates using ParserFunctions&lt;br /&gt;
 mode=none&lt;br /&gt;
 addfirstcategorydate=true&lt;br /&gt;
 &amp;amp;lt;/dynamicpagelist&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a plain list with the dates of the addition to the first (here only) category:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dynamicpagelist&amp;gt;&lt;br /&gt;
category=Handbook templates&lt;br /&gt;
notcategory=Templates using ParserFunctions&lt;br /&gt;
mode=none&lt;br /&gt;
addfirstcategorydate=true&lt;br /&gt;
&amp;lt;/dynamicpagelist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{H:f|enname=DPL}}&lt;/div&gt;</summary>
		<author><name>Tynian</name></author>
	</entry>
</feed>