||Warning: The code or configuration described here poses a major security risk.
Site administrators: You are advised against using it until this security issue is resolved.
Problem: Vulnerable to Cross-site scripting attacks, because it passes user input directly to the browser. This may lead to user accounts being hijacked, among other things.
Solution: strictly validate user input and/or apply escaping to all characters that have a special meaning in HTML
Release status: stable
|Description||Allows to produce a list of recently added, or random, pages|
|Author(s)||Nathan Larson (Leucostictetalk)|
|Latest version||0.1.14 (2014-07-19)|
|MediaWiki||1.13.1, 1.14.0, 1.15.0, 1.16.0, 1.19.x, 1.22.x|
|License||GNU General Public License 2.0 or later|
Translate the RecentPages extension if it is available at translatewiki.net
|Check usage and version matrix.|
The RecentPages extension adds a list of recently added pages to the current page. It can also do random pages. If used in conjunction with CustomNavBlocks can be used to add a side-panel of recent additions to the wiki. The
namespace="content" option will pull back recent pages from all the namespaces specified in $wgContentNamespaces. Pages that are redirects will be excluded.
Note that the only options you have for the random pages are mainspace and all content namespaces. There are technical reasons for that having to do with how RandomPage is set up. Basically, it defaults to the content namespaces, and there's probably some way to override that, but I got tired of fooling with it. A makeshift solution is just to pull everything and then filter it, but that gets pretty expensive if you're dealing with a small subset of the content pages, and it doesn't work at all if it's not a subset of the content pages (e.g. the User space is generally not a content namespace). However, mainspace is usually a pretty big subset of the content namespaces, so I left that as an option.
- 1 Installation and configuration
- 2 Usage
- 3 FAQ
- 4 Troubleshooting
- 5 See also
Installation and configuration[edit source]
- Download and place the file(s) in a directory called
- Add the following code at the bottom of your LocalSettings.php:
- Done - Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Configuration settings[edit source]
Minimum page length of a randomly-selected article
$wgRecentPagesDefaultMinimumLength = 600;
Default number of articles to pull back
$wgRecentPagesDefaultLimit = 6;
Maximum number of attempts to get a unique random article
$wgRecentPagesMaxAttempts = 1000;
Due to a glitch, leave this set to true; it has something to do with selecting random pages. It's probably some feature that doesn't work yet.
$wgRecentPagesDisableOtherNamespaces = true;
Shall we sort by default?
$wgRecentPagesDefaultSort = false;
||Any string||blank||What to use as the bullet character. If you don't put anything, it will be *.|
||1, 2 or 3||1||How many columns to display the results in|
||Any string||Not set||String to use for edit link (url encoded page title will be substituted for $1)|
||Any string||Not set||String to replace </li> with. It's probably better if you don't use this parameter|
||Any string||Not set||String to replace </ul> with|
||Any string||Not set||Category to exclude from results (only applicable to recent; not applicable to random)|
||Any string||Not set||String to replace <li> with|
||Any integer 0 or greater||6 (or whatever $wgRecentPagesDefaultLimit is set to)||How many page table rows to select in the database query|
||Any integer 0 or greater||Not set||Maximum number of results to display. If not set, then there will be no maximum. But note, the
||Any integer 0 or greater||300 (or whatever $wgRecentPagesDefaultMinimumLength is set to)||Minimum number of characters (page.page_len) in displayed articles|
||"all", "content", "user", etc. or blank for mainspace only||blank (i.e. mainspace only)||What namespace to select in the database query|
||Any string||blank||What to end each line with. $1 will be replaced with the page title.|
||Any string||Not set||Only display pages that have the given metadata property name stored in the page_props table. The key will be prefixed
||Anything (it's boolean; either set or not set)||Not set||Sort the results alphabetically|
||Anything (it's boolean)||Not set||Display a space between the page title and page property value.|
||Any string||Not set||What to replace the page property value with. Use $1 for the page property value, if you want it to be inserted into the replacement text.|
||Any string||Not set||Display this text for each result. $1 will be the page title; $2 will be the html. Putting simply
||Any string||Not set||Strip this first occurrence of this text from the html if it is the first part of the title (not the html). Typically used to strip out, e.g., a namespace like Essay:|
||Any string||Not set||String to replace <ul> with|
Pull back six most recent normal pages:
Pull back ten most recent pages from user namespace:
<recent limit="10" namespace="user" />
Pull back six most recent pages in content namespaces:
<recent namespace="content" />
Pull back six most recent pages regardless of namespace:
<recent namespace="all" />
Pull back six most recent pages regardless of namespace and display in double-column format:
<recent columns="2" />
Pull back twelve random pages from mainspace that have a minimum length of 600 characters:
<random limit="12" namespace="main" />
Pull back twelve random pages from mainspace that have a minimum length of 1,000 characters:
<random limit="12" namespace="main" minimum="1000"/>
Pull back twelve random pages from mainspace and sort them alphabetically:
<random limit="12" namespace="main" sort/>
Display a maximum of 50 results; display only results that have a short_summary property set; put a space in between the displayed page title and displayed page property value; put the page title in bold italics and display the DISPLAYTITLE rather than the unchanged page_title:
<recent prop="short_summary" limit="2000" maxresults="50" minimum="1" spaces_between="true" namespace="content" str_replace_title="'''''[[$1|$2]]''''': "/>
- How do I control the order in which pages in the new pages feed show up? I want to move one of them up/down in the sequence, either to draw attention to it, or deflect attention from it, or whatever.
- There probably should be an easier way to do this, but currently all you can do is, to bring something to the top, delete the page and the undelete it. If you want to bury something, you have to create a bunch of new articles. Ideally, there would be some very intuitive and easy-to-use GUI that would just let you drag and drop the items where you want them in the list. This being MediaWiki, you know it's not going to be that easy. If this feature is implemented, it'll probably be done by, say, a MediaWiki: page that lets you add an offset changing the position of pages in the list.
- But then it'll be necessary to figure out, should it be done by page title or page ID? If the former, then there will be problems if the page is moved, unless it's programmed to look at the page move log to see where it was moved to. If the latter, then there will be problems if the page is deleted and undeleted, because then it'll have a new title.
- There are a couple ways to implement this; one would be to use the page_props (similarly to BedellPenDragon); another would be to create a whole new table to store the info of what should be excluded or included.
- To completely remove a page from the listing, use the excludecat parameter.
- Sometimes new pages are spammy or otherwise not up to quality standards. How do I make it so that it skips the first few newest pages?
- It would be easy to add a parameter to make it do this, but I haven't done it yet.
- I want to prevent certain randomly listed pages from being listed. Why doesn't excludecat work for random?
- It would be easy to implement this using $titleCandidate, but I haven't done it yet.
- No pages are showing up
- Is $wgRecentPagesDefaultMinimumLength set so high that it's excluding all the pages?
- It doesn't work when I use
- This is a glitch; work around it by leaving out the namespace. It defaults to main.
- "No prop set!" when I use randompageincat
- Probably you have a page in your category that doesn't have the required page property (see propreplacewith parameter) set. This can happen, for instance, when someone directly uses Category:X instead of using the template that puts it into category X and gives it the necessary page property.
See also[edit source]
- Extension:BedellPenDragon — Enables you to get not only page titles but metadata of recent or random pages
- Newest Pages Extension
- Extension:SimpleChanges - Works like standard Recent Changes but only shows page titles
|Language:||English • русский|