PHPackages                             universal-omega/dynamic-page-list3 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. universal-omega/dynamic-page-list3

Abandoned → [universal-omega/dynamic-page-list4](/?search=universal-omega%2Fdynamic-page-list4)Mediawiki-extension[Utility &amp; Helpers](/categories/utility)

universal-omega/dynamic-page-list3
==================================

The DynamicPageList4 extension allows creating lists of other articles based on their category, namespace, title, references or template usage and include contents or arguments of template calls of those articles into your page.

4.0.5(3mo ago)232.5k—0%28[8 issues](https://github.com/Universal-Omega/DynamicPageList4/issues)[1 PRs](https://github.com/Universal-Omega/DynamicPageList4/pulls)GPL-3.0-or-laterPHPCI passing

Since Jul 1Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/Universal-Omega/DynamicPageList4)[ Packagist](https://packagist.org/packages/universal-omega/dynamic-page-list3)[ Docs](https://www.mediawiki.org/wiki/Extension:DynamicPageList4)[ GitHub Sponsors](https://github.com/Universal-Omega)[ RSS](/packages/universal-omega-dynamic-page-list3/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (6)Versions (51)Used By (0)Security (1)

DynamicPageList4
================

[](#dynamicpagelist4)

The **DynamicPageList4** extension is a reporting tool for MediaWiki, listing category members and intersections with various formats and details. For full documentation, see the [manual](https://dpl4.wikitide.org).

When invoked with a basic set of selection parameters DPL4 displays a list of pages in one or more categories. Selections may also be based on factors such as author, namespace, date, name pattern, usage of templates, or references to other articles. Output takes a variety of forms, some of which incorporate elements of selected articles.

This extension is invoked with the parser function `{{#dpl: .... }}` or parser tag ``. A [Wikimedia](https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:DynamicPageList_(Wikimedia))-compatible implementation of certain features can be invoked with ``.

Complex look ups can result in computationally expensive database queries. However, by default all output is cached for a period of one hour to reduce the need to rerun the query every page load. The [Other Parameters](https://dpl4.wikitide.org/wiki/Other_parameters#cacheperiod) manual page contains information on parameters that can be used to disable the cache and allow instant updates.

- Manual and Complete Documentation: [Documentation](https://dpl4.wikitide.org)
- Source Code: [Source code at GitHub](https://github.com/Universal-Omega/DynamicPageList4)
- Bugs and Feature Requests: [Issues at GitHub](https://github.com/Universal-Omega/DynamicPageList4/issues)
- Licensing: DynamicPageList4 is released under [GNU General Public License, version 3](https://opensource.org/licenses/GPL-3.0).

Installation
------------

[](#installation)

Please see the [releases page](https://github.com/Universal-Omega/DynamicPageList4/releases) for the latest releases.

Configuration
-------------

[](#configuration)

These are DPL4's configuration settings and along with their default values. To change them make sure they are defined before including the extension on the wiki. More configuration information is available on the **[MediaWiki extension page](https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:DynamicPageList4#Configuration)**.

SettingDefaultDescription$wgDPLAllowedNamespaces\[\]By default all existing namespaces are used when DPL4 initializes. Customize this setting with an array of namespace constants to restrict DPL4 to work only in those namespaces.$wgDPLAllowUnlimitedCategoriesfalseSet this to true to ignore `$wgDPLMaxCategoryCount` and allow unlimited categories. Please note that large amounts of categories in a query can slow down or crash servers.$wgDPLAllowUnlimitedResultsfalseSet this to true to ignore `$wgDPLMaxResultCount` and allow unlimited results. Please note that large result sets may result in slow or failed page loads.$wgDPLAlwaysCacheResultsfalseSet this to true to ignore `allowcachedresults` and always enable the parser cache.$wgDPLCategoryStyleListCutoff6Maximum number of items in a category list before being cut off.$wgDPLFunctionalRichness3Set the level of parameters available to end users.$wgDPLMaxCategoryCount8Maximum number of categories to allow in queries.$wgDPLMaxQueryTime10000Maximum allowed time for database queries in milliseconds.$wgDPLMaxResultCount500Maximum number of results to return from a query.$wgDPLMinCategoryCount0Minimum number of categories to allow in queries.$wgDPLOverrideParameterDefaults\[\]An associative array of parameter names and their override values. These values replace the default parameter values defined in `ParametersData`, but only if the current defaults differ.$wgDPLQueryCacheTime0Can help with situations where you have a template with the same query used on a large number of pages all being refreshed at once. The query cache cannot be purged. Suggested value between 30 to 600.$wgDPLRecursivePreprocesstrueUse `Parser::recursivePreprocess()` to improve performance by preserving the internal cache, reducing redundant template parsing.$wgDPLRecursiveTagParsefalseDo recursive tag parsing on `` parser tags converting tags and functions such as magic words like `{{PAGENAME}}`. This is similar to the `{{#dpl}}` parser function call, but may not work exactly the same in all cases.$wgDPLRunFromProtectedPagesOnlyfalseSet this to true to allow DPL4 to run from protected pages only. This is recommended if wiki administrators are having issues with malicious users creating computationally intensive queries.The global variable `$wgNonincludableNamespaces` is automatically respected by DPL4. It will prevent the contents of the listed namespaces from appearing in DPL4's output.

**Note: `$wgDPLMaxResultCount` is a LIMIT *on the SQL query itself*. Some DPL4 query parameters like `includematch` are applied *after* the SQL query, however, so results here may easily be misleading.**

### Functional Richness

[](#functional-richness)

DynamicPageList4 has many features which are unlocked based on the maximum functional richness level. There are some that can cause high CPU or database load and should be used sparingly.

- `$wgDPLFunctionalRichness = 0` is equivalent to Wikimedia's [DynamicPageList](https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:DynamicPageList_(Wikimedia))
- `$wgDPLFunctionalRichness = 1` adds additional formatting parameters
- `$wgDPLFunctionalRichness = 2` adds performance equivalent features for templates and pagelinks
- `$wgDPLFunctionalRichness = 3` allows more-expensive page inclusion features and regular expression queries.
- `$wgDPLFunctionalRichness = 4` not recommended for public websites. Includes debugging parameters for testing and development.

Usage
-----

[](#usage)

### Extended DPL4 Functionality

[](#extended-dpl4-functionality)

Extended DPL4 is invoked by using the parser function `{{#dpl: .... }}`, or the parser extension tag ` .... `.

*See [Manual - **General Usage and Invocation Syntax**](https://dpl4.wikitide.org/wiki/General_usage_and_invocation_syntax) and [**Criteria for Page Selection**](https://dpl4.wikitide.org/wiki/Criteria_for_page_selection)*

### Backwards Compatibility

[](#backwards-compatibility)

Functionality compatible with Wikimedia's DPL extension (Intersection) can be invoked with ` .... `. Further information can be found on the [Compatibility manual page](https://dpl4.wikitide.org/wiki/Compatibility).

Usage Philosophy and Overview
-----------------------------

[](#usage-philosophy-and-overview)

With the assumption there are some articles writtne about *countries* those articles will typically have three things in common:

- They will belong to a common category
- They will have a similar chapter structure, i.e. they will contain paragraphs named 'Religion' or 'History'
- They will use a template which is used to present highly structured short data items ('Capital', 'Inhabitants', ..) in a nice way (e.g. as a wikitable)

### Generate a Report Based on **countries**

[](#generate-a-report-based-on-countries)

If there was a need to assemble a report of what countries practice a certain religion this could be easily done with the **category** and **linksto** parameters.

```
{{#dpl:
category=countries
|linksto=Pastafarianism
}}
```

With DPL4 one could:

- Generate a list of all those articles (or a random sample)
- Show metadata of the articles (popularity, date of last update, ..)
- Show one or more chapters of the articles ('transclude' content)
- Show parameter values which are passed to the common template
- Order articles appropriately
- Present the result in a sortable table (e.g.)
- Generate multiple column output

### Which steps are necessary?

[](#which-steps-are-necessary)

**Find the articles you want to list:**

- Select by a logical combination (AND,OR,NOT) of categories
- Specify a range for the number of categories the article must be assigned to
- Select by a logical combination (AND,OR,NOT) of namespaces
- Define a pattern which must match the article's name
- Name a page to which the article must or must not link
- Name a template which the article must or must not use
- Name a text pattern which must occur within external links from a page
- Exclude or include redirections
- Restrict your search to stable pages or quality pages ("flagged revisions")
- Use other criteria for selection like author, date of last change etc.
- Define regular expressions to match the contents of pages you want to include

**Order the result list of articles according to**

- Article Name
- Article Size
- Date of last change
- Last User to Make an Edit

**Define attributes you want to see**

- Article Name
- Article Namespace
- Article Size
- Date of Last Change
- Date of Last Access
- Last User to Make an Edit

**Define contents you want to show**

- Whole Article
- Contents of Certain Sections (Identified by headings)
- Text Portions (Defined by special marker tags in the article)
- Values of template calls
- Use a custom template to show output

**Define the output format**

- Specify header and footer for the default output
- Use ordered list, unordered list
- Use tables
- Format table fields individually by applying templates to their content
- Use category style listing
- Truncate title or contents to a certain maximum length
- Add a link to the article or to one or more of its sections

Considerations
--------------

[](#considerations)

### Performance

[](#performance)

DPL4's code execution and database access is typically fast for typical category and article look ups. However, using loose LIKE and REGEXP match parameters and/or requesting large data sets can result in long database access times. Parser time should also be kept in consideration. For example, having the query of image results go into a template that displays them will result in a parser media transform for each one. This can quickly eat up 2MBs of RAM per media transform.

See Also
--------

[](#see-also)

### Further Reading

[](#further-reading)

DPL4 can do much more than we can explain here. A complete **[manual](https://dpl4.wikitide.org)** is available with full parameter documentation.

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance80

Actively maintained with recent releases

Popularity33

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 58.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~52 days

Recently: every ~5 days

Total

33

Last Release

95d ago

Major Versions

3.6.4 → 4.0.0-alpha.12025-07-14

### Community

Maintainers

![](https://www.gravatar.com/avatar/26584f4209b79f052ac6fac623ecb5eabf2b2b59a0875307127d94d75c27ad2d?d=identicon)[Universal Omega](/maintainers/Universal%20Omega)

---

Top Contributors

[![Universal-Omega](https://avatars.githubusercontent.com/u/54654040?v=4)](https://github.com/Universal-Omega "Universal-Omega (266 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (80 commits)")[![translatewiki](https://avatars.githubusercontent.com/u/24829418?v=4)](https://github.com/translatewiki "translatewiki (67 commits)")[![osnard](https://avatars.githubusercontent.com/u/1201528?v=4)](https://github.com/osnard "osnard (4 commits)")[![amire80](https://avatars.githubusercontent.com/u/346271?v=4)](https://github.com/amire80 "amire80 (3 commits)")[![xtexx](https://avatars.githubusercontent.com/u/46394906?v=4)](https://github.com/xtexx "xtexx (3 commits)")[![mary-kate](https://avatars.githubusercontent.com/u/2213994?v=4)](https://github.com/mary-kate "mary-kate (3 commits)")[![paladox](https://avatars.githubusercontent.com/u/5727000?v=4)](https://github.com/paladox "paladox (3 commits)")[![peterdevpl](https://avatars.githubusercontent.com/u/22261307?v=4)](https://github.com/peterdevpl "peterdevpl (3 commits)")[![kitsook](https://avatars.githubusercontent.com/u/13360325?v=4)](https://github.com/kitsook "kitsook (3 commits)")[![alex4401](https://avatars.githubusercontent.com/u/33527044?v=4)](https://github.com/alex4401 "alex4401 (2 commits)")[![TehKittyCat](https://avatars.githubusercontent.com/u/589109?v=4)](https://github.com/TehKittyCat "TehKittyCat (2 commits)")[![mmeller-wikia](https://avatars.githubusercontent.com/u/52668809?v=4)](https://github.com/mmeller-wikia "mmeller-wikia (1 commits)")[![rail01](https://avatars.githubusercontent.com/u/29921838?v=4)](https://github.com/rail01 "rail01 (1 commits)")[![SomeMWDev](https://avatars.githubusercontent.com/u/186634068?v=4)](https://github.com/SomeMWDev "SomeMWDev (1 commits)")[![magiczocker10](https://avatars.githubusercontent.com/u/59317952?v=4)](https://github.com/magiczocker10 "magiczocker10 (1 commits)")[![alistair3149](https://avatars.githubusercontent.com/u/9260542?v=4)](https://github.com/alistair3149 "alistair3149 (1 commits)")[![arhakal](https://avatars.githubusercontent.com/u/4264866?v=4)](https://github.com/arhakal "arhakal (1 commits)")[![domino-1](https://avatars.githubusercontent.com/u/78816259?v=4)](https://github.com/domino-1 "domino-1 (1 commits)")[![emkarcinos](https://avatars.githubusercontent.com/u/11946540?v=4)](https://github.com/emkarcinos "emkarcinos (1 commits)")

### Embed Badge

![Health badge](/badges/universal-omega-dynamic-page-list3/health.svg)

```
[![Health](https://phpackages.com/badges/universal-omega-dynamic-page-list3/health.svg)](https://phpackages.com/packages/universal-omega-dynamic-page-list3)
```

###  Alternatives

[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[pfefferle/wordpress-activitypub

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

5671.4k1](/packages/pfefferle-wordpress-activitypub)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

18238.1k2](/packages/civicrm-civicrm-drupal-8)[mediawiki/semantic-glossary

A terminology markup extension with a Semantic MediaWiki back-end

1352.4k](/packages/mediawiki-semantic-glossary)[humanmade/lottie-lite

A lightweight Lottie Animations Extension for WordPress

374.3k](/packages/humanmade-lottie-lite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
