Jump to content

Documentation

TYPO3 extension for displaying RSS/Atom feeds with grouping, pagination and background updates.

MPC-RSS Logo

Requirements

  • TYPO3 13.x or 14.x
  • PHP 8.2+

Installation

 
composer require mpc/mpc-rss
 

Enable in the Extension Manager, then run ‘Maintenance > Analyse database structure’.

Quick Start

  1. Add a content element: Plugin > MPC RSS Feed
  2. Click on ‘Add feed’ and enter one or more RSS/Atom URLs
  3. Select a grouping mode and save

Feeds are stored as inline records directly within the content element – no storage page is required.

Background updates

Feeds are cached per URL. To keep them up to date without visitors having to wait:

Scheduler (recommended): System > Scheduler > Add Task > "Update RSS Feeds" – Set the frequency, e.g. to every 30 minutes.

CLI:

 
vendor/bin/typo3 mpcrss:updatefeeds
vendor/bin/typo3 mpcrss:updatefeeds --clear-cache --cache-lifetime=3600
 

See “Automatic feed updates” for details and troubleshooting.

Architecture

 
Request
  └─ FeedController::listAction()
       ├─ FeedRepository → inline feed records from tt_content
       └─ FeedService::fetchGroupedByCategory()
            ├─ fetchFeedItems()       per-URL HTTP fetch + XML parse + cache
            ├─ deduplicateItems()     link-based dedup across feeds
            ├─ groupItems()           category / source / date / none
            └─ sortAndSliceGroups()   date-desc sort + maxItems limit
 

Key design decisions:

  • Special CType (mpcrss_feed) over PLUGIN_TYPE_CONTENT_ELEMENT, not list_type
  • IRRE inline records – feeds belong to the content element, not to a storage page
  • Isolated cache (mpc_rss) – clearing the page cache has no effect on the feed data
  • External content is sanitised at the caching level (tags, attributes, URL schemes)
  • The service layer is language-neutral; the controller translates generated group names via XLF
  • warmCache() Skips grouping/sorting – efficient for CLI and scheduler

Documentation

Licence

GPL v2.0 or later

Share page