Feature: #107201 - Extended RSS Widget with Atom Support
See forge#107201
Description
Building upon the configurable dashboard widgets functionality introduced in Feature: #107036 - Configurable dashboard widgets, the existing RSS widget has been extended to support Atom feeds. This provides a unified solution for both RSS and Atom feed formats within the TYPO3 Dashboard system.
The configurable widget architecture makes it possible to create feed-based widgets that users can configure directly through the dashboard interface. This capability now extends seamlessly to Atom feeds, which are commonly used by platforms such as GitHub for release feeds and project updates.
The RSS widget now automatically detects and parses both RSS and Atom feed formats. Atom feeds are parsed according to the Atom Syndication Format (RFC 4287). This provides comprehensive support for modern feed formats used by many development platforms and services, all within a single widget implementation.
Impact
- The existing "RSS Widget" now supports both RSS and Atom feeds automatically.
- Atom feeds (commonly used by GitHub, GitLab, and other platforms) can now be displayed using the same RSS widget.
- Widget instances are configurable with custom labels, feed URLs, and display limits.
- Each widget can be configured independently, allowing multiple feeds of different formats on the same dashboard.
- Automatic caching ensures optimal performance with configurable cache lifetimes.
Currently configurable options
The RSS widget supports the following configuration options for both RSS and Atom feeds:
- Label
-
- Custom title for the widget instance.
- Optional field that defaults to the widget’s default title.
- Feed URL
-
- RSS or Atom feed URL to display.
- Format detection is automatic based on feed content.
- Can be preconfigured in the service definition to create read-only instances.
- Limit
-
- Number of feed entries to show (default: 5).
- Configurable integer value to control widget content density.
- Lifetime
-
- Cache duration in seconds for the feed (default: 43200 = 12 hours).
- Advanced setting typically configured by integrators.
- Not configurable in the user interface.
Example for RSS widget with Atom feed
Service configuration
services:
# Button provider for external link
dashboard.buttons.github_releases:
class: 'TYPO3\CMS\Dashboard\Widgets\Provider\ButtonProvider'
arguments:
$title: 'View all releases'
$link: 'https://github.com/TYPO3/typo3/releases'
$target: '_blank'
# RSS widget with Atom feed URL
dashboard.widget.github_releases:
class: 'TYPO3\CMS\Dashboard\Widgets\RssWidget'
arguments:
$buttonProvider: '@dashboard.buttons.github_releases'
$options:
feedUrl: 'https://github.com/TYPO3/typo3/releases.atom'
lifeTime: 43200
limit: 10
tags:
- name: dashboard.widget
identifier: 'github_releases'
groupNames: 'general'
title: 'my_extension.widgets:github_releases.title'
description: 'my_extension.widgets:github_releases.description'
iconIdentifier: 'content-widget-rss'
height: 'large'
width: 'medium'
Usage in the dashboard
- Navigate to the dashboard where you want to add the widget.
- Click Add widget and select the RSS widget.
- Click the settings (cog) icon to customize the widget.
- Configure the feed URL (RSS or Atom), limit, and label as needed.
- Save the configuration to apply the changes.
The widget automatically detects the feed format and displays entries with titles, publication dates, content summaries, and author information when available.
Feed format support
The RSS widget now supports both feed formats:
- RSS feeds
- Item titles
- displayed as clickable links.
- Publication dates
- used for sorting entries (newest first).
- Descriptions
- displayed as entry content (HTML tags stripped).
- Atom feeds
- Entry titles
- displayed as clickable links.
- Publication dates
- used for sorting entries (newest first).
- Content/Summary
- displayed as entry description (HTML tags stripped).
- Author information
- name, email, and URL when provided in the feed.