Difference between revisions of "DPL Example 017"

From FollowTheScore
Jump to: navigation, search
(New page: == Show ''Issues'' which were updated recently == <pre><nowiki> {{#dpl: |namespace=Issue |addeditdate=true |ordermethod=lastedit |allrevisionssince=2009-04-01 |order=descending |cou...)
 
Line 1: Line 1:
== Show ''Issues'' which were updated recently ==
+
== Create a permuted index of template calls ==
  
<pre><nowiki>
+
Sometimes you want to know, which pages use a certain template with a special value.
 +
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.
 +
 
 +
In our example we have created two pages which use a template called [[Template:Index|Index]] with one or more parameters:
 
{{#dpl:
 
{{#dpl:
  |namespace=Issue
+
  |uses=Template:Index
  |addeditdate=true
+
  |include={Index}.dpl1
|ordermethod=lastedit
 
|allrevisionssince=2009-04-01
 
|order=descending
 
|count=10
 
}}
 
</nowiki></pre>
 
------------------------
 
You will get the following result:
 
{{#dpl:
 
|namespace=Issue
 
|addeditdate=true
 
|ordermethod=lastedit
 
|allrevisionssince=2009-04-01
 
|order=descending
 
|count=10
 
 
}}
 
}}
 +
 +
In our example the template ''Index'' does nothing; it could, however, tell the reader, that this page belongs to a ceratin index group - just like you see the categories of a page listed at the bottom of your wiki browser.
 +
{{#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}}°/|&nbsp; &nbsp; &nbsp;\1}}{{#vardefine:srcold|{{#var:src}}}}}}

Revision as of 19:43, 21 May 2009

Create a permuted index of template calls

Sometimes you want to know, which pages use a certain template with a special value. If you know the value you are interested in, you can use includematch.

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.

In our example we have created two pages which use a template called Index with one or more parameters:

In our example the template Index does nothing; it could, however, tell the reader, that this page belongs to a ceratin index group - just like you see the categories of a page listed at the bottom of your wiki browser. {{#arraydefine:inx|

 {{#replace:
   apples°Test inx Fruit
walnuts°Test inx Fruit;almonds°Test inx Nuts
hazelnuts°Test inx Nuts
walnuts°Test inx Nuts;
   |/;$/
   |
 }}

|;}} {{#arraysort:inx|asce}}{{#arrayprint:inx|
|%%|{{#vardefine:src|{{#replace:%%|/°.*/|}}}} {{#var:src}}
{{#replace:%%|/^(\[\[){{#var:src}}°/|     \1}}{{#vardefine:srcold|{{#var:src}}}}}}