User:Claus chr/DPL: Difference between revisions

From KDE UserBase Wiki
No edit summary
No edit summary
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages />
:Reference: [http://semeb.com/dpldemo/index.php?title=DPL:Manual DPL Manual]
:Reference: [http://semeb.com/dpldemo/index.php?title=DPL:Manual DPL Manual]
:See also [[User:Pipesmoker/Dynamic_Page_Lists|Pipesmoker's notes]] and [http://semeb.com/dpldemo/index.php?title=Extension_DPL this page of examples]
:See also [[User:Pipesmoker/Dynamic_Page_Lists|Pipesmoker's notes]] and [http://semeb.com/dpldemo/index.php?title=Extension_DPL this page of examples]
Line 13: Line 15:
The Search template searches only the main namespace, and only original English pages.
The Search template searches only the main namespace, and only original English pages.


Example: To find all English pages containing the word application - possibly capitalized enter this:
Example: To find all English pages containing the word 'application' - possibly capitalized enter this:
{{Input|1=<nowiki>{{Search|[Aa]pplication}}</nowiki>}}
{{Input|1=<nowiki>{{Search|[Aa]pplication}}</nowiki>}}
<!--
<!--
Line 20: Line 22:


{{Info|1=The results should just be a link to each page containing the searched text. For some reason, however, some pages include the content at the beginning of the page, typically an info box, an image or tabular material. This can be avoided by ensuring that the pages searched start by <code><nowiki><languages /></nowiki></code>. If the page doesn't have translate tags this directive have no effect, but it prevents the unwanted inclusion of content from the page in the search result.}}
{{Info|1=The results should just be a link to each page containing the searched text. For some reason, however, some pages include the content at the beginning of the page, typically an info box, an image or tabular material. This can be avoided by ensuring that the pages searched start by <code><nowiki><languages /></nowiki></code>. If the page doesn't have translate tags this directive have no effect, but it prevents the unwanted inclusion of content from the page in the search result.}}
=== Translated text ===
Enter <code><nowiki>{{SearchLang|</nowiki>''text''<nowiki>|</nowiki>''lang''<nowiki>}}</nowiki></code> anywhere to get the search results in the form of links. Here ''text'' can be plain text or a perl like regexp and ''lang'' is a language code. Be careful to escape regexp meta characters. If the searched text contain wiki markup this template may nor give the desired results; see the next section.
Example: To find all Danish pages containing the word 'program' - possibly capitalized enter this:
{{Input|1=<nowiki>{{SearchLang|[Pp]rogram|da}}</nowiki>}}
<!--
{{SearchLang|[Pp]rogram|da}}
-->
=== Pages linking to a given page ===
Use <code><nowiki>{{LinksTo|</nowiki>''full page name''<nowiki>}}</nowiki></code>. The ''<tt>full page name</tt>'' must be the entire wiki link up to (but not including) one of the characters '|', ']' or '#' and excluding ''<tt>Special:myLanguage</tt>''. Note, that space characters in names are sometimes entered as '_', so in searches you should enter <code>[ _]</code> for spaces.
Example: To find all pages linking to [[Getting Help]] enter
{{Input|1=<nowiki>{{LinksTo|Getting[ _]Help}}</nowiki>}}
<!--
{{LinksTo|Getting[ _]Help}}
-->


=== Text containing wiki markup ===
=== Text containing wiki markup ===
Line 113: Line 136:
{{Note|1=Some characters such as <code>¤</code> do not work as pattern delimiters; perhaps only ASCII characters can be used?}}
{{Note|1=Some characters such as <code>¤</code> do not work as pattern delimiters; perhaps only ASCII characters can be used?}}


{{Warning|1=The page count reporteb by each query is not the number of matching pages found, but the total number of pages searched in that group. That number should always be less than 500! If not, som of the pages will not have been searched.}}
{{Remember|2=Be aware!|1=The page count reported by each query is not the number of matching pages found, but the total number of pages searched in that group. That number should always be less than 500! If it is not then some of the pages will not have been searched.}}


If you want to search other namespaces than Main, just change that line. The <code>nottitleregexp</code> lines filters out all translated pages including lingering old style translations and should not be touched. The <code>titlematch</code> lines are needed to split up the search into manageable chunks. There is a maximum of pages that can be handled by the <code>includematch</code> search; if too many pages pass through the title filters the first ones up to the maximum number will be searched; the rest will be silently ignored! Currently, the maximum seems to be 1000. The <code>include</code> and <code>includemaxlength</code> should never be modified.
If you want to search other namespaces than Main, just change that line. The <code>nottitleregexp</code> lines filters out all translated pages including lingering old style translations and should not be touched. The <code>titlematch</code> lines are needed to split up the search into manageable chunks. There is a maximum of pages that can be handled by the <code>includematch</code> search; if too many pages pass through the title filters the first ones up to the maximum number will be searched; the rest will be silently ignored! Currently, the maximum seems to be 1000. The <code>include</code> and <code>includemaxlength</code> should never be modified.
Line 123: Line 146:
<DPL>
<DPL>
   titlematch = %/da
   titlematch = %/da
   namespace = Translations
   namespace = Main
   include = *
   include = *
   includematch = /[Aa]pplikation/
   includematch = /[Aa]pplikation/
Line 135: Line 158:
<DPL>
<DPL>
   titlematch = %/da
   titlematch = %/da
   namespace = Translations
   namespace = Main
   include = *
   include = *
   includematch = /[Aa]pplikation/
   includematch = /[Aa]pplikation/
Line 142: Line 165:
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
</DPL>
</DPL>
-->
<!--
{{Warning|1=There is something very, very wrong with this query!}}
-->
-->


{{Remember|2=Be careful|1=The rest of the examples should be modified to take recent insights into consideration. See the above.}}
<!-- Won't work - see above
 
== Searching for pages that hasn't been marked for translation ==
== Searching for pages that hasn't been marked for translation ==


Line 158: Line 177:
   includenotmatch = /<languages/
   includenotmatch = /<languages/
   includemaxlength = 0
   includemaxlength = 0
   resultsheader = Danish translation units containing the string "applikation"
   resultsheader = Pages that have not been marked up for translation
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
</DPL>
</DPL>
</nowiki>}}
</nowiki>}}
-->
== Finding all pages not yet marked for translation ==
{{Input|1=<nowiki>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^[A-J]
  include = *
  includenotmatch = #<languages[ ]?/>#
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with A-J\n
</DPL>
...
</nowiki>}}
<!--
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^[A-J]
  include = *
  includenotmatch = #<languages[ ]?/>#
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with A-J\n
</DPL>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^K[A-Z]
  include = *
  includenotmatch = #<languages[ ]?/>#
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with KA-KZ\n
</DPL>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^K[a-z]
  include = *
  includenotmatch = #<languages[ ]?/>#
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with Ka-Kz\n
</DPL>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^[L-Z]
  include = *
  includenotmatch = #<languages[ ]?/>#
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with L-Z\n
</DPL>
-->
== Find all templates using a given template ==
{{Input|1=<nowiki>
<DPL>
  namespace = Template
  include = *
  includematch = /{{Icon/
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% templates using the Icon template\n
</DPL>
</nowiki>}}
<!--
<DPL>
  namespace = Template
  include = *
  includematch = /{{Icon/
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% templates using the Icon template\n
</DPL>
-->


== Find discussion threads contributed by a user ==
== Find discussion threads contributed by a user ==
Line 186: Line 289:
<DPL>
<DPL>
   titlematch = %/Manual%
   titlematch = %/Manual%
   nottitlematch = %/__|%/__-__|%/___|% (%
   nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
   namespace = | User | Draft
   namespace = Main | User | Draft
   resultsheader = Manual Pages:
   resultsheader = Manual Pages:
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
Line 196: Line 299:
<DPL>
<DPL>
   titlematch = %/Manual%
   titlematch = %/Manual%
   nottitlematch = %/__|%/__-__|%/___|% (%
   nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
   namespace = | User | Draft
   namespace = Main | User | Draft
   resultsheader = Manual Pages:
   resultsheader = Manual Pages:
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
   format = ,\n* [[%PAGE%|%TITLE%]]\n,,
Line 205: Line 308:
== All English pages linking to a given page ==
== All English pages linking to a given page ==


The LinksTo template is describes and tested here: [[User:Claus_chr/DPL/Test]]
{{Input|1=<nowiki>{{LinksTo|Plasma/Panels}}</nowiki>}}
 
{{Warning|1=This query seems to be affected by the same problem as the plain text query (above).}}


<!--
{{LinksTo|Plasma/Panels}}
{{LinksTo|Plasma/Panels}}
-->


==Kopete Subpages in 3 columns==
==Kopete Subpages in 3 columns==
Line 299: Line 402:
== Listing Non-Translation Pages ==
== Listing Non-Translation Pages ==
{{Input|1=<nowiki><DPL>
{{Input|1=<nowiki><DPL>
   nottitlematch = %/__|%/zh-%|%(%)
   nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
   titlematch = Amarok%
   titlematch = Amarok%
   namespace = Main
   namespace = Main
Line 310: Line 413:


{{Input|1=<nowiki><DPL>
{{Input|1=<nowiki><DPL>
   nottitlematch = %/__|%/zh-%|%pt-%|%(%)
   nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
   namespace = MediaWiki
   namespace = MediaWiki
   columns = 3
   columns = 3

Revision as of 20:53, 24 September 2012


Reference: DPL Manual
See also Pipesmoker's notes and this page of examples
Example UI on this Template:Catlist page

All the examples on this page have been commented out to prevent the page from being very slow to load. If you want to see the outcome of a search example, just edit the page and remove the comment tags around the desired example. You don't need to save the page, a preview will give you the search results; that way you can experiment with the examples and easily restore the page to its original state when you are done.

Searching for pages containing a certain text string

Text without wiki markup

Enter {{Search|text}} anywhere to get the search results in the form of links. Here text can be plain text or a perl like regexp. Be careful to escape regexp meta characters. If the searched text contain wiki markup this template may nor give the desired results; see the next section.

The Search template searches only the main namespace, and only original English pages.

Example: To find all English pages containing the word 'application' - possibly capitalized enter this:

{{Search|[Aa]pplication}}

Information

The results should just be a link to each page containing the searched text. For some reason, however, some pages include the content at the beginning of the page, typically an info box, an image or tabular material. This can be avoided by ensuring that the pages searched start by <languages />. If the page doesn't have translate tags this directive have no effect, but it prevents the unwanted inclusion of content from the page in the search result.


Translated text

Enter {{SearchLang|text|lang}} anywhere to get the search results in the form of links. Here text can be plain text or a perl like regexp and lang is a language code. Be careful to escape regexp meta characters. If the searched text contain wiki markup this template may nor give the desired results; see the next section.

Example: To find all Danish pages containing the word 'program' - possibly capitalized enter this:

{{SearchLang|[Pp]rogram|da}}

Pages linking to a given page

Use {{LinksTo|full page name}}. The full page name must be the entire wiki link up to (but not including) one of the characters '|', ']' or '#' and excluding Special:myLanguage. Note, that space characters in names are sometimes entered as '_', so in searches you should enter [ _] for spaces.

Example: To find all pages linking to Getting Help enter

{{LinksTo|Getting[ _]Help}}

Text containing wiki markup

In case the Search template does not work for you use code like this to accomplish your desired result:

<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^[A-J]
  include = *
  includematch = @\{\{Remember\|3=@
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with A-J\n
</DPL>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^K[A-Z]
  include = *
  includematch = @\{\{Remember\|3=@
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with KA-KZ\n
</DPL>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^K[a-z]
  include = *
  includematch = @\{\{Remember\|3=@
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with Ka-Kz\n
</DPL>
<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^[L-Z]
  include = *
  includematch = @\{\{Remember\|3=@
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with L-Z\n
</DPL>

Normally, you'd want to copy all of this into your page and modify the includematch lines to the pattern you want to search for. Note the two @-characters; they mark the beginning and end of the actual search pattern. You can use any character instead of @ as long as it does not appear in the actual pattern.

Note

Some characters such as ¤ do not work as pattern delimiters; perhaps only ASCII characters can be used?


Be aware!

The page count reported by each query is not the number of matching pages found, but the total number of pages searched in that group. That number should always be less than 500! If it is not then some of the pages will not have been searched.


If you want to search other namespaces than Main, just change that line. The nottitleregexp lines filters out all translated pages including lingering old style translations and should not be touched. The titlematch lines are needed to split up the search into manageable chunks. There is a maximum of pages that can be handled by the includematch search; if too many pages pass through the title filters the first ones up to the maximum number will be searched; the rest will be silently ignored! Currently, the maximum seems to be 1000. The include and includemaxlength should never be modified.


Finding all pages not yet marked for translation

<DPL>
  namespace = Main
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titleregexp = ^[A-J]
  include = *
  includenotmatch = #<languages[ ]?/>#
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages beginning with A-J\n
</DPL>
...


Find all templates using a given template

<DPL>
  namespace = Template
  include = *
  includematch = /{{Icon/
  includemaxlength = 0
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% templates using the Icon template\n
</DPL>


Find discussion threads contributed by a user

Perhaps more talk namespaces needs to be searched.

<DPL>
  namespace = Talk | Thread
  createdby = AmirHP
</DPL>


All English manual pages

<DPL>
  titlematch = %/Manual%
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  namespace = Main | User | Draft
  resultsheader = Manual Pages:
  format = ,\n* [[%PAGE%|%TITLE%]]\n,,
</DPL>


All English pages linking to a given page

{{LinksTo|Plasma/Panels}}


Kopete Subpages in 3 columns

<DPL>
  titlematch = Kopete/%
  notnamespace = Translations
  columns = 3
  format = ,\n* [[%PAGE%|%TITLE%]],,
</DPL>

Akonadi Subpages in Danish

<DPL>
  titlematch = Akonadi%/da
  notnamespace = Translations
  format = ,\n* [[%PAGE%|%TITLE%]],,
</DPL>

Archived pages

<DPL>
  titlematch = %
  namespace = Archive
  columns = 2
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages in the Archive namespace. These are:\n
</DPL>

NoIndexed pages

<DPL>
  titlematch = %
  category = Noindexed_pages
  columns = 2
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages in the Archive namespace. These are:\n
</DPL>

Ignoring Deleted Pages

"As for DPL. If you hit a page with ?action=purge attached to the URL (i.e. http://en.wikinews.org/wiki/Template:Latest_news?action=purge ), it will dump all the removed pages."

Remaining old-style translations

<DPL>
  titlematch = %_(%)
  notcategory = Template
  notnamespace = Thread
  notnamespace = Summary
  columns = 2
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages (partly) remaining in old-style translations. These are:\n
</DPL>

Pages with old i18n bar

<DPL>
  titlematch = %
  namespace = Main
  uses = Template:I18n/Language Navigation Bar
  columns = 3
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages that still display the old i18n language bar\n
</DPL>

Pages with old i18n bar but w/o old-way-translated ones

<DPL>
  nottitlematch = %_(%)
  namespace = Main
  uses = Template:I18n/Language Navigation Bar
  columns = 3
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% relevant pages that still display the old i18n language bar\n
</DPL>

Pages not updated since 1st July 2010

<DPL>
  namespace = Main
  lastrevisionbefore = 201007010000
  columns = 2
  ordermethod=lastedit
  format = ,\n* (%DATE%) [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages without recent updates\n
</DPL>

Listing Non-Translation Pages

<DPL>
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  titlematch = Amarok%
  namespace = Main
  columns = 1
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% Amarok pages, not counting translations\n
</DPL>

List all pages in a specific namespace

<DPL>
  nottitleregexp = .*((/[a-z][a-z](.|-..)?)|([ _][(][a-z][a-z](...)?[)]))$
  namespace = MediaWiki
  columns = 3
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = These %TOTALPAGES% pages are in the Mediawiki namespace\n
</DPL>

To count translated pages in a specific language:

<DPL>
  titlematch = %/en
  notnamespace = Translations
  columns = 3
  format = ,\n* [[%PAGE%|%TITLE%]],,
  resultsheader = There are %TOTALPAGES% pages (partly) translated to English. These are:\n
</DPL>