|
|
Line 1: |
Line 1: |
− | == Create a permuted index of template calls ==
| + | __NOTOC__ |
| + | {{Example|Tree of relations, templates and categories for a given page}} |
| | | |
− | Sometimes you want to know, which pages use a certain template with a special value.
| + | We show references to other pages and the use of templates. |
− | If you know the value you are interested in, you can use <tt>includematch</tt>.
| |
| | | |
− | If you want a complete listing of all parameter values and the pages that are using them you can build a '''permuted index'''. (Note: The category system of MediaWiki is also a permuted index). If a page uses more than one value it will appear in the result more than once. If several pages use the same value they will be listed below that value.
| + | <pre><nowiki> |
| + | {{#tree:root=[[DPL Example 010 page 1]] ..| |
| + | {{DPL Example 010 sub|DPL Example 010 page 1|*}} |
| + | }} |
| + | </nowiki></pre> |
| | | |
− | In our example we have created two pages which use a template called [[Template:Index|Index]] with one or more parameters:
| + | ---- |
− | {{#dpl: | + | The above DPL command produces the following output: |
− | |uses=Template:Index
| + | ---- |
− | |include={Index}.dpl1
| + | |
| + | {{#tree:root=[[DPL Example 010 page 1]] ..| |
| + | {{DPL Example 010 sub|DPL Example 010 page 1|*}} |
| }} | | }} |
− |
| |
− | In our example the template ''Index'' does nothing; it could, however, tell the reader, that this page belongs to a certain index group - just like mediawiki lists the categories of a page at the bottom of your wiki browser. The surrogate template we use in the DPL query constructs an [http://mediawiki.org/Extension:Array array] which is sorted and printed afterwards.
| |
− | The result looks like this:
| |
− | {{#arraydefine:inx|
| |
− | {{#replace:
| |
− | {{#dpl:
| |
− | |uses=Template:Index
| |
− | |include={Index}.dpl2
| |
− | |format=,,;
| |
− | }}
| |
− | |/;$/
| |
− | |
| |
− | }}
| |
− | |;}}
| |
− | <!-- now we have an array where each element has two parts which are separated by °;
| |
− | the first part is the parameter value, the second part is the name of the referring wiki page
| |
− | we sort the array and then print an indented list where common first elements are shown only once
| |
− | -->{{#arraysort:inx|asce}}<!--
| |
− | -->{{#arrayprint:inx|<br/>|%%|{{#vardefine:src|{{#replace:%%|/°.*/|}}}} {{#ifeq:{{#var:src}}|{{#var:srcold}}||'''{{#var:src}}'''<br/>}}{{#replace:[[%%]]|/^(\[\[){{#var:src}}°/| \1}}{{#vardefine:srcold|{{#var:src}}}}}}
| |
Revision as of 08:02, 24 May 2009
back to list of examples
Tree of relations, templates and categories for a given page
We show references to other pages and the use of templates.
{{#tree:root=[[DPL Example 010 page 1]] ..|
{{DPL Example 010 sub|DPL Example 010 page 1|*}}
}}
The above DPL command produces the following output:
{{#tree:root=DPL Example 010 page 1 ..|
{{#replace:* DPL Example 010 cat
}}