Extension:FeaturedFeeds

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual
Crystal Clear action run.png
FeaturedFeeds

Release status: stable

px
Implementation Data extraction, API, Hook
Description Adds syndication feeds of wiki's featured content
Author(s) Max Semenik (MaxSemtalk)
Latest version continuous updates
MediaWiki 1.19+
PHP 5.2+
Database changes No
License WTFPL 2.0
Download
CHANGELOG
Parameters

$wgFeaturedFeedsDefaults
$wgFeaturedFeeds
$wgDisplayFeedsInSidebar

Hooks used
BeforePageDisplay

ArticleSaveComplete
SkinTemplateOutputPageBeforeExec
FeaturedFeeds::getFeeds

Translate the FeaturedFeeds extension if it is available at translatewiki.net

Check usage and version matrix; code metrics
Bugs: list open list all report

FeaturedFeeds is an extension that creates daily feeds (Atom or RSS) of wiki's featured content (ranging from Featured Articles to Media of the Day). The feeds are added to site's main page and are available via the API. See also: /WMF deployment.

Using FeaturedFeeds[edit | edit source]

This extension requires that wikis use an automated process to publish their featured content daily (or at least very often).

Installation[edit | edit source]

  1. Download the files from Git or download a snapshot. Choose the version that matches your version of MediaWiki.
  2. Create a directory FeaturedFeeds in your $IP/extensions directory.
  3. Extract the files to this $IP/extensions/FeaturedFeeds directory.
  4. Add to the end of LocalSettings.php:
    require_once("$IP/extensions/FeaturedFeeds/FeaturedFeeds.php");
  5. Installation can now be verified through Special:Version on your wiki

Configuration[edit | edit source]

A wiki must have some means of caching set up to use FeaturedFeeds, or everything will be super slow.

Settings[edit | edit source]


Variable name Description
$wgFeaturedFeeds Contains array of feed definitions in the following format:
'feed name' => array(
	'page' => <message name>,
	'title' => <message name>,
	'description' => <message name>,
	'entryName' => <message name>,
)

Mandatory items:

'page'
Name of the message that contains expression that evaulates to the title of the page with today's feed entry. For example, for English Wikipedia's featured articles feed it could contain Wikipedia:Today's featured article/{{#time:F j, Y}} that evaluates (using ParserFunctions, but ordinary date/time magic words may be used as well) to Wikipedia:Today's featured article/October 28, 2014. This message always uses content language.
'title'
Name of the message that contains feed title, for example "Joe's wiki nonsense of the day feed".
'description'
A longer description of the feed, used for <subtitle> Atom element and <description> RSS element.
'entryName'
Name of the message that contains heading of feed's individual entries.

Also see below for optional settings.

$wgFeaturedFeedsDefaults Provides default values for some parameters of every feed from $wgFeaturedFeeds.

Default value:

array(
	'limit' => 10,
	'inUserLanguage' => false,
)
'limit'
Maximum number of entries (ie number of days) in the feed.
'inUserLanguage'
Whether user's preferred language should be honored by the feed. For example, it doesn't make much sense to have English Wikipedia's featured articles feed in languages other than English as the content is always in English anyway. But Commons' picture of the day feed contains images and their descriptions that are available in many languages, so it actually benefits from its description's localisation.
$wgDisplayFeedsInSidebar Whether links to feeds should be displayed in sidebar on main page

On-site configuration[edit | edit source]

See the full subpage for details on the Wikimedia projects configuration

Message names[edit | edit source]

Each feed has the following messages controlling its behavior (replace * with feed name, chosen among those above):

Message Description Example
ffeed-*-page Title of the page that contains day's featured content.
Has one optional parameter, $1, which gets substituted with feed language code for use in multilingual feeds (currently, only on Commons).
Wikipedia:Today's featured article/{{#time:F j, Y}}
ffeed-*-title Feed name Wikipedia featured articles feed
ffeed-*-short-title Short feed name, could be used on sidebar in the future Featured articles
ffeed-*-desc More lengthy feed description Best articles on Wikipedia!!!
ffeed-*-entry Title of each day's entry {{CURRENTMONTHNAME}} {{CURRENTDAY}} Wikipedia featured article

How to set up a feed[edit | edit source]

Create page named MediaWiki:Ffeed-*-page containing page title (again, substitute * with feed name). The title will be processed with date and time functions such as {{CURRENTDAY}} is set to feed entry's current date. Two cases are possible here:

  • Wiki uses different templates for each day, e.g. Wikipedia:Today's featured article/October 28, 2014 on the English Wikipedia. In such case, use expression that evaluates to page title directly, e.g. Wikipedia:Today's featured article/{{#time:F j, Y}}.
  • Wiki uses a single template that uses date magic internally to display proper content. In such cases, either point MediaWiki:Ffeed-*-page to that template directly, or, if it has <noinclude> sections not intended for readers to see, point it to a page that contains a transclusion of the said template and nothing else.
If you need to translate or tweak interface messages of a feed, do that before creating MediaWiki:Ffeed-*-page, otherwise your new feed might take up to one hour to catch up these changes.

How to publish feeds in the sidebar[edit | edit source]

Just create page MediaWiki:Ffeed-enable-sidebar-links with content other than a dash (-) or an empty string. A section called "Featured content feeds" will appear in the sidebar on the main page.


API module[edit | edit source]

FeaturedFeeds adds API action=featuredfeed. Parameters:

feedformat
feed format, rss or atom. If omitted, RSS will be assumed.
feed
Feed name. Required.
language
Feed language. Not the language of Wikipedia from which to retrieve data, but akin to uselang=<...> parameter to index.php. Might be ignored, depending on each feed's settings. If omitted, content language will be assumed.