Extension talk:DynamicPageList3

From mediawiki.org
Jump to navigation Jump to search

Includematch returns too many results[edit]

I want to see a list of wiki pages in a particular category that use a particular template and match a regex (basically look for the name Johnny in the template) within that template.

|category = AP
|namespace = Minutes
|titlematch = Document%
|include  = {AP2}
|includematch = ,/name\s*=\s*Johnny/s

I get a list of results that match the regex, but not only for pages that use template AP2. Instead, a list of all pages that match the regex is produced. The pages that don't include the template, are listed asː

Minutes:Documentation/2020-10-28 Template:AP2.default

(with TemplateːAP2.default being a redlink)

How do I get a list that only includes pages that actually use template AP2? --MLRodrigue (talk) 14:38, 28 October 2020 (UTC)


i think you need this:

|uses = Template:AP2

This should work:

|category = AP
|namespace = Minutes
|uses = Template:AP2
|titlematch = Document%
|include  = {AP2}
|includematch = ,/name\s*=\s*Johnny/s

Yukii (talk) 12:39, 30 October 2020 (UTC)

Can't get basic table to show properly, please help[edit]

Hi, I'm trying to create a simple 2-column table, using a template named parameter (PaperYear) as column 2. I've tried:

|category    =Papers
|include     ={Papers}:PaperYear
|table       =class=sortable,Article,Year

I get this as a result (it brings the right data, but it does not look like a table at all, plus it shows all that backend stuff...):

Template:Extension DPL{|class=sortable !Article !Year |- |Growing fresh fruits and vegetables in an urban landscape: A geospatial assessment of ground level and rooftop urban agriculture potential in Boston, USA |2017 |- |Paper2 |2018 |}

Could anyone point what I'm missing/doing wrong? Many thanks!
Update: sorted! See the block that worked well pasted below. I was missing a few lines (which I copied from DPL:FAQ page, from the post "I try to generate table formatting with DPL but it looks weird - to hell with the syntax!"). It looks like a proper wikitable now :)

  listseparators=\n{|class="wikitable sortable"\n!Title\n!Year,\n|-\n|[[%PAGE%]],,\n|}

Release dates would be useful[edit]

It would be great if on the main page for the plugin along side the version number, it had the release date.

"&" character in pagename causes page not listed in dpl[edit]

I have a DPL3 query to list all subpages within the same namespace and category = name of current page:

|format=,\n* [[%PAGE%|²{SUBPAGENAME:%TITLE%}²]],,

This works as expected, except when the pagename of the current page contains an "&". Then this list is always empty..I assume that the "&" in PAGENAME is interpreted as a logical AND? Is there a way around ?


require_once "$IP/extensions/DynamicPageList3/DynamicPageList3.php"; doesn't reflect the actual naming in the source archive. It's actually named DynamicPageList.php and not DynamicPageList3.php.

I fixed the documentation. Alexia E. Smith (talk) 20:23, 27 May 2015 (UTC)

includeonly,onlyinclude tags[edit]

Is there any way to get DPL to account for these tags when it includes content through a template? --Nad (talk) 19:33, 9 July 2015 (UTC)

Quite possibly. Do you happen to have a working live example of where it is broken? I can not seem to reproduce it exactly as described. Alexia E. Smith (talk) 20:31, 9 July 2015 (UTC)
I just set up an example for you in my public wiki, but it's working perfectly! The problem I'm having is on an intranet so I can't show you, but it doesn't matter now as it must not be DPL3 that's causing the trouble. --Nad (talk) 14:47, 10 July 2015 (UTC)
Check if you have an extra opening or closing includeonly/noinclude/onlyinclude tag somewhere in the template you are working with. I have done that before and Mediawiki's parser does not produce an error. Alexia E. Smith (talk) 20:15, 10 July 2015 (UTC)
Can confirm on the latest version of the extension (version 3.3.3) that it doesn't respect noinclude tags, which is strange, it should be able to do this. There is currently no way to do it so Labeled Section Transclusion needs to be used if we need this behavior. There are no extra opening or closing tags in our tests. TiltedCerebellum (talk) 18:57, 18 June 2020 (UTC)

DPL not installed on gamepedia.com[edit]

A lot of the manual examples in gamepedia.com aren't making much sense because they use actual DPL statements to show the results of the examples, but DPL isn't installed so the result of the example syntax is the same text as the example itself. --Nad (talk) 14:59, 12 July 2015 (UTC)

Looks like I never actually copied/ported over the examples from the old manual. The examples on the individual documentation pages are intended to be plain text. I will work on porting and/or creating examples. Alexia E. Smith (talk) 16:10, 20 July 2015 (UTC)
This is still a work in progress, but progress is being made. There were some bugs in 3.0.1 that I encountered that were actually preventing the manual from progressing forward. Alexia E. Smith (talk) 20:14, 29 July 2015 (UTC)


HitCounters were removed in 1.25 and moved into an extension. Since installing the extension deletes the relevant tables, which is also scheduled to happen in 1.26 for all installs, reports that use the counters throw database errors. -- Prod (talk) 02:00, 21 July 2015 (UTC)

The new release of Extension:DynamicPageList3 supports the HitCounters extension now and resolves this issue. Alexia E. Smith (talk) 20:14, 29 July 2015 (UTC)
It doesn't seem to be working for me. I got the following error: Unknown column 'hit_counter.page_counter' in 'order clause'. -- Prod (talk) 02:22, 11 August 2015 (UTC)

suppresserrors/debug, undefined variable[edit]

Many thanks for this great re-work! DPL has become so essential to my wiki that I went through the trouble of upgrading to MW 1.24 and lifting PHP to 5.4. I am truly glad to see that this extension is being maintained in good hands.

I am using version 3.0.2 which I cloned via Git IIRC. Two things I noticed:

  1. Instead of "suppresserrors = true" I had to set "debug = false" in addition.
  2. There seems to be a small bug in the code for I am getting "Notice: Undefined variable: where in /var/www/extensions/DynamicPageList/classes/Query.php on line 1816".
I am looking into suppresserrors/debug issue. However, the PHP notices are fixed as of: https://github.com/Alexia/DynamicPageList/commit/3b8c52336cde5c444e7cd21d675d1dc802b681c0 Alexia E. Smith (talk) 15:23, 31 July 2015 (UTC)
Took a few minutes to figure out, but the issue with suppresserrors is that it is deprecated. Setting noresultsheader to a blank space will have the same effect of suppressing errors for queries. Alexia E. Smith (talk) 15:43, 31 July 2015 (UTC)
Many thanks for your quick response! In my original request I forgot to mention that the wiki page about suppresserrors mentions debug but that is a red link. It would be great if that could reference could be completed. Cheers! --Sm8ps (talk) 19:29, 31 July 2015 (UTC)
I just went though and fixed several on that page. Thanks! Alexia E. Smith (talk) 19:47, 31 July 2015 (UTC)

Internal using DPL3[edit]

I tried this with DPL3 {{#dpl: |category = Africa |ordermethod = counter |order = descending |addpagecounter = true |count = 5 }} I'm getting internal error [2eb5afba] /index.php?title=PM_Toolkit&action=submit MWException from line 496 of /var/www/mediawiki/mw/extensions/DynamicPageList/classes/Query.php: DPL\Query::addJoin: Attempted to overwrite existing join clause.


  1. 0 /var/www/mediawiki/mw/extensions/DynamicPageList/classes/Query.php(736): DPL\Query->addJoin(string, array)
  2. 1 /var/www/mediawiki/mw/extensions/DynamicPageList/classes/Query.php(168): DPL\Query->_addpagecounter(boolean)
  3. 2 /var/www/mediawiki/mw/extensions/DynamicPageList/classes/Parse.php(221): DPL\Query->buildAndSelect(boolean)
  4. 3 /var/www/mediawiki/mw/extensions/DynamicPageList/DynamicPageList.hooks.php(302): DPL\Parse->parse(string, Parser, NULL, NULL, boolean)
  5. 4 [internal function]: DynamicPageListHooks::dplParserFunction(Parser, string, string, string, string, string, string)
  6. 5 /var/www/mediawiki/mw/includes/parser/Parser.php(3771): call_user_func_array(array, array)
  7. 6 /var/www/mediawiki/mw/includes/parser/Parser.php(3505): Parser->callParserFunction(PPFrame_DOM, string, array)
  8. 7 /var/www/mediawiki/mw/includes/parser/Preprocessor_DOM.php(1169): Parser->braceSubstitution(array, PPFrame_DOM)
  9. 8 /var/www/mediawiki/mw/includes/parser/Parser.php(3322): PPFrame_DOM->expand(PPNode_DOM, integer)
  10. 9 /var/www/mediawiki/mw/includes/parser/Parser.php(1231): Parser->replaceVariables(string)
  11. 10 /var/www/mediawiki/mw/includes/parser/Parser.php(434): Parser->internalParse(string)
  12. 11 /var/www/mediawiki/mw/includes/content/WikitextContent.php(333): Parser->parse(string, Title, ParserOptions, boolean, boolean, NULL)
  13. 12 /var/www/mediawiki/mw/includes/content/AbstractContent.php(497): WikitextContent->fillParserOutput(Title, NULL, ParserOptions, boolean, ParserOutput)
  14. 13 /var/www/mediawiki/mw/includes/page/WikiPage.php(2131): AbstractContent->getParserOutput(Title, NULL, ParserOptions)
  15. 14 /var/www/mediawiki/mw/includes/page/WikiPage.php(1757): WikiPage->prepareContentForEdit(WikitextContent, NULL, User, string)
  16. 15 [internal function]: WikiPage->doEditContent(WikitextContent, string, integer, boolean, NULL, string)
  17. 16 /var/www/mediawiki/mw/includes/page/Article.php(2016): call_user_func_array(array, array)
  18. 17 /var/www/mediawiki/mw/includes/EditPage.php(1921): Article->__call(string, array)
  19. 18 /var/www/mediawiki/mw/includes/EditPage.php(1921): Article->doEditContent(WikitextContent, string, integer, boolean, NULL, string)
  20. 19 /var/www/mediawiki/mw/includes/EditPage.php(1305): EditPage->internalAttemptSave(array, boolean)
  21. 20 /var/www/mediawiki/mw/includes/EditPage.php(539): EditPage->attemptSave(array)
  22. 21 /var/www/mediawiki/mw/includes/actions/EditAction.php(56): EditPage->edit()
  23. 22 /var/www/mediawiki/mw/includes/actions/SubmitAction.php(40): EditAction->show()
  24. 23 /var/www/mediawiki/mw/includes/MediaWiki.php(395): SubmitAction->show()
  25. 24 /var/www/mediawiki/mw/includes/MediaWiki.php(273): MediaWiki->performAction(Article, Title)
  26. 25 /var/www/mediawiki/mw/includes/MediaWiki.php(566): MediaWiki->performRequest()
  27. 26 /var/www/mediawiki/mw/includes/MediaWiki.php(414): MediaWiki->main()
  28. 27 /var/www/mediawiki/mw/index.php(41): MediaWiki->run()
  29. 28 {main}

When I run php update I get this

PHP Parse error: syntax error, unexpected '[' in /var/www/mediawiki/mw/extensions/DynamicPageList/DynamicPageList.php on line 21

If you are running less than PHP version 5.4 you will need to upgrade. Alexia E. Smith (talk) 18:27, 19 October 2015 (UTC)
MediaWiki 1.25.3, PHP 5.4.40, MySQL 5.6.19-log -- 19 October 2015 Phil Legault
I get these errors
Fatal error: Call to undefined function DPL\mb_strtoupper() in /var/www/mediawiki/mw/extensions/DynamicPageList/classes/Parse.php on line 658
I ran into this same mb_strtoupper() problem. You need the mbstring php extension. On Ubuntu I had to install php7.0-mbstring package

Parent category listing only articles of ordermethod=firstedit[edit]

When I add the parent category it list only sub-categories and not pages. How do I get it to select the pages for the sub-categories and not the subcategories?

Can you put in the DPL tag with all the parameters you are using here? Thanks! Alexia E. Smith (talk) 14:23, 29 October 2015 (UTC)

dplcache parameter[edit]

When is going to be introduced a replacemenet for the 'dplcache' parameter? Or is there already one? The documentation on gamepedia says that it's being worked on. Is there a release date or...  ? 14:22, 15 November 2015 (UTC)

Whoops, that should have been removed from the documentation. The dplcache parameter was added in DPL2 and I removed it when creating DPL3. The cache functionality is now fully handled by MediaWiki's built in cache system and there is no need for it anymore. Alexia E. Smith (talk) 17:35, 15 November 2015 (UTC)
Hmm, then how can I make it so whatever it's displaying (images in my case) changes only once per day and not every time I reload the page? I am using both |allowcachedresults=true and |cacheperiod=864000. 13:48, 16 November 2015 (UTC)
Allowcachedresults=true is the default. Caching is is explicitly turned on and has to be disabled(set to false) in DPL3 so it is not needed to specify the allowcachedresults parameters. This is opposite of DPL2. The usage of cacheperiod is still correct, but you have an extra zero for the number of seconds. Otherwise the default is one hour. Alexia E. Smith (talk) 15:07, 16 November 2015 (UTC)
Welp, I have removed both the extra zero and the unnecessary parameter, but it's still showing a different image each time the page is reloaded. Is there a tag that makes it change the image only once per day? Also, does this separator ¦ separate titles both in 'notcategory' and 'nottitlematch'? 16:29, 16 November 2015 (UTC)

So, will you answer me? 17:05, 27 November 2015 (UTC)

Setting $allowUnlimitedResults=true makes no change of count limit of 500[edit]

I want to count the number of members in a category by using


The category contains more than 500 members, so I set $wgDplSettings['allowUnlimitedResults']=true; in LocalSettings, but I only got 500 again.

Setting $wgDplSettings['maxResultCount']=10000; and $wgDplSettings['allowUnlimitedResults']=false; in LocalSettings... the same 500.

Setting $wgDplSettings['allowUnlimitedResults']=true; in LocalSettings and the parameter "count=" in the #dpl-command above... the same 500.

I got the correct count by editing ParametersData.php the value for 'count' 'default'=500' in a higher value say 10000.

The two DplSettings above left to standard ("false" and "500" respectively). I'm using the latest DPL-version 3.0.9 and MediaWiki 1.25.3.

Can someone please check this. Thanks. Karsten 11:13, 6 April 2016 (UTC)

I'm running into the same problem. $wgDplSettings['maxResultCount']=5000, but I still only am getting 500 results when I should be getting 801. Brianfreud (talk) 04:44, 11 September 2016 (UTC) Brian
Hello from 2019 and v3.3.2, same problem, same ParametersData.php workaround as Karsten. - 03:54, 3 November 2019 (UTC)
Well, actually I want to switch from DPL third party to DPL3 here. But the results are nailed to 500 if there are more results. I also fiddled around with the 'maxResultCount' and 'allowUnlimitedResults' setting. So far nothing helps here. --Wgkderdicke (talk) 22:21, 25 November 2019 (UTC)
Same problem here. MW 1.35.2 and DPL3.3.4. -- 00:51, 10 June 2021 (UTC)

How to sort items alphabetically?[edit]

How do I set the list to sort the results alphabetically? This page and the manual is pretty confusing.

i was also trying to do the same, and unfortunately did not work out how to do so until i found a page about sorting on a completely different manual at semeb.com. so i added some examples to a page in the the original gamepedia.com manual.
Tetriminos (talk) 12:20, 17 September 2016 (UTC)

Installation, update.php must be executed (?)[edit]

  • my DPL output always contained a red link to Template:Extension_DPL, I had to execute php maintenance/update.php to generate Template:Extension_DPL
  • Is this a normal case? A hint in the documentation would be useful... --Escalator~enwikibooks (talk) 13:11, 2 May 2016 (UTC)
Same happened here with MW 1.34.0 and DynamicPageList3 3.3.3. After running maintenance/update.php the red link was still there and when accessing the same it said "This page was automatically created. It serves as an anchor page for all invocations of Extension:DynamicPageList (DPL)." -- now that the Template exists, the red link is indeed gone. -- Ckujau (talk) 10:15, 30 January 2020 (UTC)

How to output last modified articles with ordermethod=lastedit ?[edit]

The example from the manual http://help.gamepedia.com/DPL:Example_-_Select_by_Recently_Changed


does not work for me, tried both |order=descending and |order=ascending, still getting the oldest articles only. --Escalator~enwikibooks (talk) 12:17, 9 May 2016 (UTC)

Conflict b/w Extension:Lockdown and Extension:DynamicPageList3[edit]

Hi all, there seems to be a conflict between Lockdown and DPL3 in cases where you have custom namespaces defined that are locked. In such cases DPL neglects selection of all pages that reside in locked namespaces. Though in LocalSettings.php

Example: let Secure be a custom name space that has been locked down for everyone except sysop. Sysop executes following dpl code:


This renders message: Extension:DynamicPageList (DPL), version 3.0.7: Warning: No results. though Secure has several pages.

Any ideas?

thanks, wolf --Stoettner (talk) 13:57, 16 June 2016 (UTC)

Same problem here. I tried to make this work, but it seems that if you set any explicit permission (doesn't matter to which group) in a namespace, DPL just stops showing any results. Alexia told me that it could be the problem that the extension fetches those resutls with a different set of permissions. But it doesn't seem to be any known group.
Anyone has an idea how to fix this?
Regards, Aploe --Aploe (talk) 09:25, 10 September 2018 (UTC)

Switching from previous version[edit]

The wiki MoBaDaten.Info ist still runing with the DynamicPageList (third-party) extension. The introducing note of the DynamicPageList3 extension promises fully backwards compatibility. If I want to switch from that “ancient” version to this revised version, I only have to do the following steps:

  1. Upload of the DynamicPageList3 extension into the extension folder
  2. Change of the require_once statement in LocalSettings.php (wiki is still running with Mediawiki 1.23)
  3. Yes Done without any unpleasant surprises afterwards …???

--Wgkderdicke (talk) 13:56, 23 June 2016 (UTC)

It turns out that there are indeed unpleasant surprises afterwards:
  1. The dplcache function ist not part of DPL3 and therefore an error occured if this funtion is used. This is the petty evil. Since this function seems to be obsolet because of changes in Mediawiki itself, one has only to remove the regarding parts from all dpl function calls.
  2. The second surprise is the worse one. It appears that the settings around the result count, namely maxResultCount and allowUnlimitedResults, are useless, if one needs more results than the default 500. They do not work. One can set this values to true and/or more than 500 and the result is always 500, if there are actually more results.
So the second surprise makes this extension unusable for me at the moment.--Wgkderdicke (talk) 15:16, 26 November 2019 (UTC)

List is not going to update?[edit]

I installed DPL3 for lastedit list in main page. But I got a problem that list will not refresh by itself.

The list content will keep as no change since I edited it. Refresh, logout, close window is not going to change anything.

Anytime I edit the settings in LocalSettings.php or edit the code, then list will update. Any possible reason?

Here's my code:

category = ABC
addeditdate = true
ordermethod = lastedit
order = descending
count = 10

Additional question:

1. When I set namespace = 0, which should display content from main space. But I got this error:

Extension:DynamicPageList (DPL), version 3.0.9: 警告: 錯誤的 '$0' 參數: 'namespace'! 正在使用預設值: '0'。 說明: $0= $3。

2. When I tried to use firstedit as ordermethod, the result is totally the same with lastedit. Is it a bug? How to fix it?

Thanks for reply! --JHK (talk) 02:09, 18 August 2016 (UTC)

I'm having the same problem. Also, according to gamepedia there should be a randomseed parameter, but when I use it it just says the parameter does not exist... 01:48, 7 October 2016 (UTC)

From the code comments: //mt_srand() seeding was removed due to PHP 5.2.1 and above no longer generating the same sequence for the same seed. (And confirmed by the PHP manual page for mt_srand). -- 23:09, 29 April 2018 (UTC)

Descending for firstedit is not working[edit]

I'm using Mediawiki 1.27.

I found it seems like descending is not working for firstedit.

When firstedit is set as ordermethod, ascending and descending will get the same result(sort by ascending).

How to fix it? --JHK (talk) 17:14, 28 October 2016 (UTC)

No one has the same problem?? --JHK (talk) 02:32, 3 November 2016 (UTC)

Display list of headings within a page[edit]

Is it possible to get a list of pages, and show their headings only, not the actually contents? I read the documentation and didn't seem to find anything of sort.... 14:35, 16 April 2017 (UTC)

"shownav" style ("next 100") navigation bar for list generated by DPL[edit]

I would like to use DPL to generate a list of recently changed pages. List can run into 100s of entries. I would like to put a navigation bar like the one that is automatically generated by Special:NewPages. Generate links like (Newest) (Newer 100) (Older 100) (Oldest). Clicking on these links, DPL should generate a list of relevant set of pages. Can this be done? Can you show me how? Size of list is not predetermined.

How do you exclude lastedits when the edit was done by bot?[edit]

We have a DPL query which shows the date/time of the last edit on all our Talk pages, a link of the person who last edited the talk page, a link to the corresponding main page and the value of the (SMW) property Editor on the corresponding main page. We recently had bot activity (from extension:MassEditRegex) that made updates to the talk pages and now all these last edits from bot are listed. So I want to 'not see' any edits from bot, similar to hiding updates from bot on Recent Changes. I was looking at something like using notmodifiedby=bot, but that doesn't give the desired result. Any ideas?

This is the query:

|format=¶{¦ class="wikitable sortable"
    ¶!Talk page of
    ¶¦-¶¦%DATE% ¶¦[[User:%USER%]] ¶¦[[%PAGE%|%TITLE%]] ¶¦ ²{#show: %TITLE%¦?Editor}²,,¶¦}

Example output:

When Who Talk page of Editor
2017-04-18 23:47:58 Bodifee, Peter R-ALG-O.10.02 Frank Ruessink
2017-04-18 23:47:58 Bodifee, Peter ISO/IEC 13249-3

Thanks! PeterBodifee (talk) 22:56, 21 April 2017 (UTC)

MediaWiki 1.29 + Cite + DPL3[edit]

I've updated to the latest versions of each, and got this error. -- Prod (talk) 23:04, 16 July 2017 (UTC)

Fatal error: Cannot access private property Cite::$mGroupCnt in extensions/DynamicPageList/classes/DynamicPageList.php on line 84
Same here. I had previously also tested DPL (March 2017 update) with MediaWiki v1.28.2 and Extension:Cite (for MediaWiki v1.29). It threw out the same fatal error. (GitHub issue) --AhmadF.Cheema (talk) 16:13, 18 July 2017 (UTC)
I also tried upgrading 1.27 to 1.29 today. All my other (far too long) list of Extensions are up to date. Not sure if Extension:Cite is causing the issue but I get the same message as above. --Brian of London (talk) 10:42, 19 July 2017 (UTC)
It's definitely a known incompatibility of DynamicPageList3 with Cite, see the GitHub issue. Apparently, will have to wait until some developer finds the time to fix the issue. --AhmadF.Cheema (talk) 00:27, 21 July 2017 (UTC)
I can confirm, as well, that I encounter the same issue after upgrading to 1.29. Disabling Cite allows DPL to work. │Star-Warden│ 16:06, 22 July 2017 (UTC)
Issue resolved in Aug 2, 2017 commits. --AhmadF.Cheema (talk) 20:30, 3 August 2017 (UTC)

DPL: "**" will add all DIRECT subcategories of that category DB ERROR[edit]

When adding the asterisk to a category in the DPL parser function to add search in subcategories I always get an error:

A database query error has occurred. This may indicate a bug in the software. Fatal exception of type "Wikimedia\Rdbms\DBQueryError"

The code can be as simple as :

{{#dpl: category= **{{PAGENAME}} }}

Any hint of why this might be and how to solve it? Or how to search in subcategories of the current one?


It can easily be bypassed by calling DPL recursively:

{{#dpl: category= {{#dpl: category= {{#dpl: category= {{{1}}} }} }} }}

Gallery tag stops the processing of Format special symbols[edit]

The example in the documentation:


|namespace = Image

|format = <gallery>,%PAGE%\n,,</gallery>


DOES NOT work and it just produces a Gallery with ONE "photo" reading ,%PAGE%\n,, like in:



|namespace = Image

|format = <gallery>




</gallery> }}

DOES work producing a Gallery with three photos.

In the test I have done, it seems that as soon as DPL encounters the <gallery> tag it stops processing as symbols the following characters so there is no way to pass to the Gallery the resulting list of pages.

As it is in the documentation... did it ever work in previous versions?

Any workaround available for this great functionality?

YES: The workaround is as simple as using the Escape characters of DPL. The following code works:


|namespace = Image

|format = «gallery»,%PAGE%\n,,«/gallery»


I have corrected the mistake in the documentation.

runtime error with MW 1.29 (Cite extension conflict)[edit]

The code in DPL.php near line 80 tries to access private variables from the Cite extension to avoid that citations get lost that were made before DPL is called. The php interpreter does not allow such kind of access and you will get an error message which blocks the whole wiki installation. As a quick work around you can disable the workaround. In the long run the conflict should be solved via API calls to Cite.php (if this is possible). Algorithmix (talk) 20:46, 3 August 2017 (UTC)

  • This was fixed in the latest release of DPL3. Alexia E. Smith (talk) 20:47, 3 August 2017 (UTC)

original documentation is available again[edit]

I (Algorithmix aka Gero) am the author of the original manual (and of large code portions of DPL). Unfortunately the website with the manual was down for some time due to a PHP version change. I migrated the manual to another server (the old link to http://semeb.com/dpldemo still works) and upgraded the MW version to a more recent one.

User accounts that were valid for the original website should still work.

I noticed that there is a (partial) copy of the manual at "gamepedia". In case the version at gamepedia contains some updates/corrections: How should we proceed?

Algorithmix (talk) 20:55, 3 August 2017 (UTC)

  • DPL3 is intended to be a full fork of DPL2 including the documentation as there are minor differences with some of the parameter functionality. I actually would like to move the documentation on the Gamepedia Help Wiki to the Github project. I just have not had personal free time to do it. Alexia E. Smith (talk) 23:11, 3 August 2017 (UTC)

ordercollation has no effect[edit]

According to this page (https://help.gamepedia.com/DPL:Parameters:_Controlling_Output_Order) I set ordercollation=latin1_german_ci to have a non-case-sensitive ordering of my results, but the list is still ordered by case (uppercase first, lowercase second). What am I doing wrong?

List the page itself[edit]

When I add a category based search (e.g. category = A) on an page B, that is also in category A, then page B is not listed in the results. I think this is for the most cases very helpful, but I need page B listed. Is there an option for doing that?

Help Documentation down[edit]

Unable to access documentation
[5fd0d9ef859aa1642d6c2676] /DPL:Parameters:_Other_Parameters RedisException from line 141 of /home/hydra/public_html/includes/libs/redis/RedisConnRef.php: READONLY You can't write against a read only slave.
  1. 0 /home/hydra/public_html/includes/libs/redis/RedisConnRef.php(141): Redis->del(string)
  2. 1 /home/hydra/public_html/includes/libs/redis/RedisConnRef.php(124): RedisConnRef->tryCall(string, array)
  3. 2 /home/hydra/public_html/extensions/CategorySkins/classes/CategorySkin.php(95): RedisConnRef->__call(string, array)
  4. 3 /home/hydra/public_html/includes/Setup.php(827): CategorySkin::injectModules()
  5. 4 /home/hydra/public_html/includes/WebStart.php(147): require_once(string)
  6. 5 /home/hydra/public_html/index.php(40): require(string)
  7. 6 {main}

Pages that Transclude a Page?[edit]

How to get a list of pages that transclude a page?

This would be similar to

{{#dpl: |uses = Tag:Banana }}

Johnywhy (talk) 12:57, 5 June 2018 (UTC)

Suppress HTML, and Preserve Format, in Transcluded DPL?[edit]

The following DPL displays correctly on it's own page:

{{#dpl: linksto=Banana|columns=6}}

But, when transcluded to another page, the format is lost, and raw HTML is displayed:


How to fix?

[Solved] includematch: How to suppress display of matched parameters?[edit]

I'm trying to match


Regarding https://help.gamepedia.com/DPL:Parameters:_Criteria_for_Page_Selection#includematch, and https://help.gamepedia.com/DPL:Parameters:_Controlling_Output_Volume#include

The DPL statement


returns the expected page list:


Problem is, it also displays the parameter "Anteater" after every page-name.

How to show only the pagenames,and suppress display of matched parameters, while still matching the parameters?

Johnywhy (talk) 08:42, 5 June 2018 (UTC)

Solved. use #dplreplace to remove the matching text put there by the include statement. Use the format statement only to append an arbitrary delimiter character before the output of the include statement, to ensure dplreplace doesn't accidentally affect any page-names (in case any page names contain the same string). The format statement isn't normally required-- page-names will get listed in the output by default. I use · as delimiter, but it can be any character you want. Note The format statement isn't normally required-- page-names will get listed in the output by default. The format parameter by itself it's insufficient to remove the matching text, because the matching text is added to the output (by the include statement) after the output of the format statement. The format statement has no effect on the output of the include statement.

    |uses = Template:Tag
    |format = ,\n* %PAGE%·,,
    |includematch = /Anteater/
    |include = {Tag}:1


Johnywhy (talk) 13:09, 5 June 2018 (UTC)

Using DPL3 with Mediawiki gallery[edit]

I'm trying to use build in Mediawiki Gallery to generate a blog-like homepage with DPL3. I don't get what i have done wrong. Do you have an idea ?

|format   = <gallery mode="packed-overlay">,¶Image:%PAGE%.jpg|[[%PAGE%]],,</gallery>


Not updating[edit]

I use a two stage deployment, where I add content locally, then I do a local export and remote import on my live site.

Many pages are basically a dynamic index of either links to other pages or content fragments from them, based on their category tags. (Let's call it semi-structured wiki content, with lots of transclusion).

Everything works great locally, or on my hosted site, if I edit them manually. But if I do an export locally, and import on my hosted site, it breaks.

The export/import brings in all the content changes (with categories). But DPL3 query (index pages) will not get that any of those articles have changed. So the DPL query shows no results: "Extension:DynamicPageList (DPL), version 3.1.3: Warning: No results" -- even though I just important many articles with the proper tags.

The imported pages all look fine. And shows up in the category page as being properly tagged. And if I touch them (edit + save), it will work. It just wont show up via DPL3, unless I manually go into any of the articles, and edit anything and save. I waited days to see if it's some cache issue -- but nope. They remain stale until I manually edit each one.

Basically, it feels like something is cached (and not getting updated on import), or the import isn't bringing something in that let's DPL know that it is tagged.

But I'm stumped as to what is missing on the normal export/import behavior. Or even a work-around. Anyone have any hints/ideas?

Countable Error on MW 1.31[edit]

v 1.31 new install

i'm getting the error below. Also reported to Gamepedia.

Warning: count(): Parameter must be an array or an object that implements Countable in extensions/DynamicPageList/classes/DynamicPageList.php on line 443

and several other lines.

Also getting:

Warning: Cannot modify header information - headers already sent by (output started at /home/gunsywtx/public_html/extensions/DynamicPageList/classes/DynamicPageList.php:443) in /home/gunsywtx/public_html/includes/WebResponse.php on line 46

on several lines.

Johnywhy (talk) 07:25, 25 June 2018 (UTC)

Issues with listattr and headingmode[edit]

When headingmode=ordered or unordered then listattr only works if mode=ordered or unordered. headingmode=H2, H3, and H4 all do not work, returning Extension:DynamicPageList (DPL), version 3.2.1: Warning: Skipping bad option 'H2' for parameter 'headingmode'. 02:10, 3 August 2018 (UTC)

Shortstory without image-Photos[edit]

Hi, I'm using this, to show lastedited 3 articles from alle category. But i need to show me the shortstory just without image from article (just text). Is that possible?

order= descending
format   =,\n*[[%PAGE%|'''%TITLE%''']],,


Reset and eliminate[edit]

I've also put this on Github.

1. I'd like to be able to use DPL in parser function mode but have reset=categories behave as it would in parser extension mode (see below). Would this be possible?

From: https://help.gamepedia.com/DPL:Parameters:_Other_Parameters#reset -- In parser extension mode (DPL tag like ): reset=categories will ignore categories of included contents but keep 'own' categories like 'Q Cat'. In parser fuction mode ({{#DPL:....}}): reset=categories will ignore all categories

2. When I use eliminate=categories in parser function mode (not tried parser extension mode) I get this error: "Extension:DynamicPageList (DPL), version 3.1.1: Warning: Skipping bad option 'categories' for parameter 'eliminate'." What can I do to fix this?

Thanks, Jonathan3 (talk) 20:56, 4 November 2018 (UTC)

Using DPL with images[edit]

order= descending
format   =,\n*[[File:%IMAGE%]],[[%PAGE%|'''%TITLE%''']],,

What i got is just the image name (examplexyz.jpg) How can i implement that as image? I tried that with the File Syntax but it doesn't work. Any ideas ?

Warning: preg_match_all(): Compilation failed: recursive call could loop indefinitely[edit]

MediaWiki | 1.31.6 Semantic MediaWiki | 3.1.4 PHP | 7.2.24 (apache2handler) DynamicPageList3 3.3.3 (2019-04-03)

Warning: preg_match_all(): Compilation failed: recursive call could loop indefinitely at offset 20 in /app/mediawiki/extensions/SemanticMediaWiki/src/Parser/LinksEncoder.php on line 173

Warning: Invalid argument supplied for foreach() in /app/mediawiki/extensions/SemanticMediaWiki/src/Parser/LinksEncoder.php on line 182

same error. my homepage showing the error 3 times, I went through all my extensions and I found that extension DynamicPageList3 3.3.3 (2019-04-03) disabled and 2 of the instances of the error went away.

Differently named surrogate + using DPL %TITLE% with the #sub parser function[edit]

Differently Named Surrogate issue[edit]

I'm trying to figure out how to use a template name completely different from the original template. So I have Template:CountryInfo, then Template:CountryInfo.dpl as one surrogate this works when using includepage={CountryInfo}.dpl, then in that template I specify the template parameters I want to use and it all works great. If I go by the documentation, I should be able to use a surrogate that is named differently ({CountryStats}) than the template it draws from by using the other syntax {CountryInfo¦CountryStats}. Except that it includes the entire contents of the CountryInfo page ignoring the template variables set in CountryStats.dpl, why?

The documentation states:

There is an alternate syntax to specify a surrogate template. It has the advantage that the surrogate template may reside in a different namespace than the original template. Also, the surrogate template's name can be completely different from the original template name: {template¦surrogate template}. For example, you may specify something like {my template¦Help:Substitution for my template}.

This correctly outputs the template parameter values specified in the CountryInfo.dpl template:

|mode		    = userformat
|listseparators    = \n{{{!}}class="wikitable sortable" style="padding:0px;" \n{{!}}-\n!Title1 \n!Title2,\n{{!}}-,\n{{!}}-\n{{!}}-,\n{{!}}}
|secseparators	    = \n{{!}},,\n{{!}},
|multisecseparators= ,\n{{!}}-\n{{!}}\n{{!}}

This incorrectly outputs the entire page contents of CountryInfo instead of those specified the CountryStats.dpl template

|mode		    = userformat
|listseparators    = \n{{{!}}class="wikitable sortable" style="padding:0px;" \n{{!}}-\n!Title1 \n!Title2,\n{{!}}-,\n{{!}}-\n{{!}}-,\n{{!}}}
|secseparators	    = \n{{!}},,\n{{!}},
|multisecseparators= ,\n{{!}}-\n{{!}}\n{{!}}

#Sub parser function to trim %TITLE%[edit]

I'm also trying to use the parser function #sub to trim a page title, but instead it trims the built-in variable reference and displays that output.

So for example: In a dpl surrogate template


Results in:


How can the results of a dpl query be used with parser string functions? I tried setting %PAGE% as a variable and then trimming that but it just outputs the full page title untrimmed by #sub :(

Something broken in my DPL[edit]

Why is this post getting deleted?

This simple setup

 |category    = Ideell förening
 |addauthor   = true

Gives me this:

  • Sockengille . . [[User:|]]
  • St/Domstol 202/06 . . [[User:|]]
  • Pakistan Association . . [[User:|]]
  • Yoruba Summit Förening . . [[User:|]]
  • Yezidiska Kulturföreningen Dasin I Arlöv . . [[User:|]]

Ass you can see, the author is not showing and instead i get this [[User:|]]

 MediaWiki	1.34.1
 PHP	7.3.18-1+ubuntu16.04.1+deb.sury.org+1 (apache2handler)
 MySQL	5.7.30-0ubuntu0.16.04.1
 ICU	65.1
 Lua	5.1.5
 DynamicPageList3	3.3.3

Diagnostikon (talk) 09:46, 9 June 2020 (UTC)

It works fine on my wikis. The only time it shows something like you describe is when the user in question no longer exists (i.e., I deleted the user with a maintenance script), the user page in question doesn't exist etc. Also might be helpful to specify where the issue can be seen. Have you tried using the debug features to view the output? TiltedCerebellum (talk) 02:38, 11 June 2020 (UTC)
Diagnostikon, I'm having the same problem. We have a query that lists all talk pages changed in the last year, and who made the last edit. The query still works fine for talk pages last changed before January (when my wiki was updated to v1.33), but talk pages changed after this date no longer bring the last editor's name. I guess there's been a database change somewhere and DPL is not aware of the new location of this info. Capmo (talk) 05:58, 9 December 2020 (UTC)

Using "Count" parameter with "allowUnlimitedResults" = True[edit]

I think that raises an error: I could not understand the error, it was something like that: "Warning, Parameter $0 is Wrong !count, Using default {number}, Help: $0=$3".

Tried to use |debug={0 to 5}, without any helpful information given from it.

Anyway, The actual 'error' (or it was designed?) as i see from the source code is that: https://gitlab.com/hydrawiki/extensions/DynamicPageList/-/blob/9cf1cb6866755be567c917e1ed328e8f9a386f35/classes/Parameters.php Line 622, "_count". Looks like ignoring the count parameter if this "allowUnlimitedResults" is defined, Why?

How to do parser functions on %PAGE%? in surrogate[edit]

Is there any way to use parser functions on variables inside of a surrogate?

I'm trying to trim letters of the end of a page name in a surrogate template and it only trims the variable name itself. I've tried a few different ways to convert it to a regular string... I just can't seem to wrap my head around it. Is there any way to convert a variable to a string for operations to be completed on it?

  linksto = Article Title
  mode = userformat
  allowcachedresults = true
  listseparators = ¶{|class="wikitable sortable no-padding" ¶|- ¶!Event ¶!Year ¶!Month ¶!Day ¶!Type ¶!Prize ¶!notes,¶|-, ¶|- ¶|-,¶|}
  secseparators = ¶|,,¶|,
  multisecseparators = ,¶|-¶|¶|

And in the Events.table surrogate template:

<!-- Attempt 1 -->{{#dplvar:set|pageName|%PAGE%}}{{#sub:{{#dplvar: pageName }}|-9|2}}
<!-- Attempt 2 -->{{#dplvar:set|pageName|{{#rel2abs: %PAGE% }} }}{{#sub:{{#dplvar: pageName }}|-9|2}}
<!-- Attempt 3 -->{{#dplvar:set|pageName|{{#titleparts: %PAGE% }} }}{{#sub:{{#dplvar: pageName }}|-9|2}}

TiltedCerebellum (talk) 02:51, 1 August 2020 (UTC)

Database error when using linksfrom and notlinksfrom at the same time[edit]

[83d36244c493dded5faa776f] 2020-09-22 23:15:26: Fatal exception of type "Wikimedia\Rdbms\DBQueryError"

I get that when I do this:

{{#dpl:category=Species|linksfrom=Week 25/Ecosystem|notlinksfrom=Week 26/Ecosystem}}

They work as intended when used separately. I want to be able to do them at the same time. Is this a bug, and is there a workaround? Disgustedorite (talk) 23:25, 22 September 2020 (UTC)

DynamicPageList3 does not follow the Actor Migration[edit]

I am starting a migration to Mediawiki 1.35 of my wiki, and some DPL requests are now causing a database error when extracting user information. It seems the Actor migration was not taken into account in the latest versions. DPL3 still tries to get rev.rev_user and rev.rev_user_text fields which do not exist anymore. Is there a plan to correct this ? There was a bug open in gitlab one year ago but no evolution ...

I have the same problem and am currently looking at switching to DPL2 (DPL third-party). No idea if that's a solution yet but I guess I'll find out. We need 1.35 for the built-in php VE that no longer requires node parsoid... and 1.35 is the current version, our 1.33 is outdated and soon to be unsupported so we have no choice but try to some other stuff to get something working. We need DPL functionality, hopefully dpl2 is 1.35 compliant where DPL3 isn't. It's a bummer. TiltedCerebellum (talk) 23:31, 9 November 2020 (UTC)
Nope, same problem in DPL2 unfortunately. Database full of errors regarding this. TiltedCerebellum (talk) 08:47, 13 November 2020 (UTC)
I have MW 1.34.4 and it works all right (despite some PHP notices, which might have been there with earlier MW versions too, I don't know) so you could step up to that while waiting for DPL3 to work with 1.35 Jonathan3 (talk) 11:58, 20 November 2020 (UTC)
There is the new bugreport 4867 on their Gitlab Repo hydrawiki/DynamicPagelist (sorry, can't add any external links) from two weeks ago which requests compatability with the actor schema. However, no reaction yet. Ljuhrich (talk) 23:07, 24 November 2020 (UTC)
https://gitlab.com/hydrawiki/extensions/DynamicPageList/-/issues/4867 (I can add external links, since I'm an established user). * Pppery * it has begun 02:05, 25 November 2020 (UTC)
Same problem also in Issue 4865 – "Select based on revision date": None of these work … MW 1.33.2 with php 7.2.32 and dpl 3.3.3. (Same result in MW 1.34.0)".
One administrator tweaked the DPL3 code to take care of this, but (on testing MW 1.35) asked "how many subtle problems may exist like the one mentioned [below]?"
Another administrator discovered that %User% still worked, but only on records that had been created before we installed MW 1.33 (from 1.32), and then we discovered that migration from "User" to "Actor" was happening in phases, apparently with each version of MW. Apparently migration included with MW 1.33 was on records created after its installation. This raises several questions, Do we need to install all updates, one after the other, to get complete migration? Are things complicated enough, or do you want more? Bcjohnston (talk) 23:46, 9 December 2020 (UTC)

Category: Pages using DynamicPageList parser function not wanted[edit]

I have DPL on every page through templates, and I do not want the pages added to the category "Pages using DynamicPageList parser function", as even after adding HIDDENCAT it clutters other things. How can I prevent it being populated? Vicarage (talk) 14:26, 31 October 2020 (UTC)

Surround the category with noinclude tags:
<noinclude>[[Category:...]]</noinclude> -Jomegat (not logged in, sorry)
I don't understand that answer. Ever since commit 152a1b2 ("DPL3 with 1.35 support") every page where DynamicPageList3 is active gets added to the (non-existing) category:Pages using DynamicPageList parser function category. How can I stop that? I don't have any [[Category:...]] elements set, so I don't understand what a <noinclude> tag would accomplish here. Is there a tunable to disable that new behaviour? Please help. -- Evilninja (talk) 19:55, 6 April 2021 (UTC)

Please add compatibility with 1.35[edit]

Please, please, please add compatibility with MediaWiki 1.35.

Potential bug in line 1319 of classes\Parameters.php[edit]

foreach ($reset as $value => $key) { needs to be changed to foreach ($eliminate as $value => $key) {. This is probably why it never worked for me! On a new server I started getting the errors:

PHP Warning: Invalid argument supplied for foreach() in /....../extensions/DynamicPageList/classes/Parameters.php on line 1319 PHP Notice: Undefined variable: reset in /....../extensions/DynamicPageList/classes/Parameters.php on line 1319

Jonathan3 (talk) 21:22, 16 November 2020 (UTC)

Potential bug at lines 278 and 280 of classes/Article.php[edit]

Whenever I ran a query including the lastrevisionbefore parameter my apache error log got clogged up with lots of the following:

... PHP Notice:  Undefined index: rev_user_text in .../extensions/DynamicPageList/classes/Article.php on line 278, referer: ...
... PHP Notice:  Undefined index: rev_comment in .../extensions/DynamicPageList/classes/Article.php on line 280, referer: ...

To fix this I added ?? NULL to the relevant lines:

$article->mUser     = $row['rev_user_text'] ?? NULL;
$article->mDate     = $row['rev_timestamp'];
$article->mComment  = $row['rev_comment'] ?? NULL;

I'm using DPL3 3.3.2 (b67e4e9). Jonathan3 (talk) 22:54, 10 December 2020 (UTC)

This is related to the Actor migration (for rev_user_text) and related database work (for rev_comment). It sounds like your wiki is running MediaWiki 1.35, meaning you're likely to keep running into these and similar issues with this extension; see the other recent comments here for an indication. ディノ千?!☎ Dinoguy1000 05:21, 11 December 2020 (UTC)
I’m on 1.34.4 but have upgraded php version. Maybe earlier php versions ignore it and later versions just stop working. Also I wasn’t checking the logs previously. I’ve avoided upgrading to 1.35 because of potential compatibility problems, including with DPL3. Thanks for the link. I’ll keep an eye on this. Jonathan3 (talk) 08:27, 11 December 2020 (UTC)

Is DPL ready for MW 1.35 yet?[edit]

There are quite a few recent fixes at https://github.com/Universal-Omega/DynamicPageList3/commits/ and I wonder whether I should upgrade to MW1.35 yet...

Thanks! Jonathan3 (talk) 00:33, 18 January 2021 (UTC)

I just tried to get https://github.com/Universal-Omega/DynamicPageList3/ , which claims to support 1.35 and has a pending merge request to be merged in, to work with an old wiki that has <DPL> tags. The documentation doesn't say you need to do anything beyond installing the extension in order to make <DPL> tags work. The extension replaces them and their contents with nothing at all. Changing the tags to something else doesn't help. Some error_log statements indicate that <DPL> elements are being recognized, but not their contents. At that point I gave up. Rp (talk) 16:10, 15 February 2021 (UTC)

Two invocations of DPL on the same page[edit]

I have a page where I need to have two DPL listings showing different category combinations on the same page. It worked on DplThirdParty, but the second invocation returns on empty set on DPL3. I know the syntax is OK for the second invocation, because if I remove the first one the second one appears just fine. Any help would be appreciated. --Jomegat (talk) 03:44, 22 January 2021 (UTC)

Found it. The DPL was being invoked from a template that lacked a #vardefine. --Jomegat (talk) 21:25, 29 January 2021 (UTC)

MW 1.36[edit]

I am having issues with this extension after having upgraded to MW 1.36. Is there and expected ETA to have it working with 1.36? — Preceding unsigned comment added by Hpyjoy (talkcontribs) 12:50, 3 June 2021 (UTC)

Works over here. What kind of issues exactly? -- Evilninja (talk)

When there is no "Subpages", an error occurs.


|noresultsheader=''No subpages''

Any page using this template has the normal template "Subpages" text:

I did not have this issue on 1.35. — Preceding unsigned comment added by Hpyjoy (talkcontribs) 15:33, 7 June 2021 (UTC)

Support Pagination or Show More Results?[edit]

I'm showing backlinks on pages, and I want to for example limit the results to the first 10 backlinks, and if there are more, to show a link to show the rest of them, or else have pagination links (next 10, prev 10). I can't quite see how to do this with the scroll and count parameters as documented on the gamepedia site. How can I only show a link to all or more results if the results > count? Thanks for any help.

And by the way, here is my backlinks code, which also shows backlinks to redirects to a page:

|ordermethod = lastedit
|order       = descending

--Edtechdev (talk) 13:17, 10 June 2021 (UTC)