TYPO3 extension for displaying RSS/Atom feeds with grouping, pagination, and background updates.
- TYPO3 13.x or 14.x
- PHP 8.2+
composer require mpc/mpc-rssActivate in the Extension Manager, then run Maintenance > Analyze Database Structure.
- Add a content element: Plugin > MPC RSS Feed
- Click Add Feed and enter one or more RSS/Atom URLs
- Choose a grouping mode and save
Feeds are stored as inline records directly on the content element -- no storage page needed.
Feeds are cached per URL. To keep them fresh without making visitors wait:
Scheduler (recommended):
System > Scheduler > Add Task > "Update RSS Feeds" -- set frequency to e.g. every 30 minutes.
CLI:
vendor/bin/typo3 mpcrss:updatefeeds
vendor/bin/typo3 mpcrss:updatefeeds --clear-cache --cache-lifetime=3600See Automatic Feed Updates for details and troubleshooting.
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:
- Dedicated CType (
mpcrss_feed) viaPLUGIN_TYPE_CONTENT_ELEMENT, not list_type - IRRE inline records -- feeds belong to the content element, not a storage page
- Isolated cache (
mpc_rss) -- clearing page cache doesn't affect feed data - External content is sanitized at the caching layer (tags, attributes, URL schemes)
- Service layer is language-neutral; the controller translates generated group labels via XLF
warmCache()skips grouping/sorting -- efficient for CLI and Scheduler
- Automatic Feed Updates -- Scheduler and CLI setup
- Grouping Modes -- Category, source, date, or timeline
- Custom Templates -- Override templates and available variables
- Routing -- SEO-friendly URLs
GPL-2.0-or-later