erhaweb / feed-display
Feed Display - Fetches and parses RSS and Atom web feeds with the SimplePie library and prepares them for frontend display
Package info
github.com/ErHaWeb/feed_display
Type:typo3-cms-extension
pkg:composer/erhaweb/feed-display
Requires
- php: >=8.2 <8.6
- simplepie/simplepie: ^1.9
- typo3/cms-backend: ^13.4 || ^14.3
- typo3/cms-core: ^13.4 || ^14.3
- typo3/cms-extbase: ^13.4 || ^14.3
- typo3/cms-fluid: ^13.4 || ^14.3
- typo3/cms-frontend: ^13.4 || ^14.3
Requires (Dev)
- ergebnis/composer-normalize: ^2.0
- friendsofphp/php-cs-fixer: ^3.0
- helmich/typo3-typoscript-lint: ^3.3
- icanhazstring/composer-unused: 0.8.11 || 0.9.6
- php-parallel-lint/php-parallel-lint: ^1.4
- phpmd/phpmd: ^2.15
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.12 || ^2.1
- phpstan/phpstan-phpunit: ^1.4 || ^2.0
- phpstan/phpstan-strict-rules: ^1.6 || ^2.0
- phpunit/phpunit: ^11.5
- roave/security-advisories: dev-latest
- saschaegerer/phpstan-typo3: ^2.1 || ^3.0
- seld/jsonlint: ^1.11
- symfony/translation: ^6.4 || ^7.4
- symfony/yaml: ^6.0 || ^7.0
- typo3/cms-fluid-styled-content: ^13.4 || ^14.3
- typo3/cms-install: ^13.4 || ^14.3
- typo3/coding-standards: ^0.8
- typo3/testing-framework: ^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
- typo3-ter/feed-display: 3.1.0
This package is auto-updated.
Last update: 2026-11-09 00:17:38 UTC
README
Feed Display fetches RSS and Atom web feeds and renders selected feed data in TYPO3 frontend content elements. It uses the SimplePie feed parser and exposes feed and item data to Fluid templates.
Remote http and https feeds are fetched through TYPO3's PSR-17/PSR-18 HTTP
client, so instance-wide HTTP settings such as proxy configuration are applied
automatically. The last successful response per source is stored permanently
in the database and survives TYPO3 cache flushes. Prepared display data stays
separate per plugin configuration. Live refresh is the default; an optional
feeddisplay:refresh job can keep scheduler-mode sources current.
At a glance
| Item | Value |
|---|---|
| Extension key | feed_display |
| Composer package | erhaweb/feed-display |
| TYPO3 support | ^13.4 || ^14.3 |
| PHP support | >=8.2 <8.6 |
| Documentation | docs.typo3.org |
| TER | extensions.typo3.org |
| Source | GitHub |
| Issues | GitHub Issues |
Highlights
- RSS and Atom frontend rendering powered by SimplePie.
- TYPO3 HTTP client integration for remote feeds.
- Configurable feed and item fields for Fluid templates.
- Site Set support for TYPO3 v13 and v14, with a static TypoScript fallback.
- Content-element FlexForm settings plus Site Settings and TypoScript constants.
- Durable last-successful responses with disposable display caches.
- Optional scheduled refresh and explicit removal of unused sources.
Installation
composer require erhaweb/feed-display
After installation or an update from 3.0.2, apply the regular database schema
update (vendor/bin/typo3 extension:setup in Composer installations). Existing
plugins remain in live mode; no Scheduler job is required. Durable protection
starts with the first successful fetch. Cache flushes rebuild display arrays
without forcing a download. Use feeddisplay:refresh to refresh sources and
feeddisplay:remove --url='…' to remove explicitly selected ones. Configured
sources can be created again afterwards.
See persistent feeds and Scheduler setup.
Continue with the Composer installation guide and the Quick start.
Classic installations should use the complete TER package, which includes a locked SimplePie runtime bundle. Git checkouts and GitHub source archives do not contain that generated bundle. Before activating a Classic Git checkout, build it from the extension directory:
composer build-extension
No Composer invocation is needed on a Classic production server when installing the TER package. Composer installations use the project's regular SimplePie dependency instead of the bundled copy.
For development, Build/Scripts/runTests.sh -s libraries builds the same bundle;
-s verifyLibraries checks it and -s artefact builds and verifies a TER ZIP.
See .github/RELEASE.md for library updates and releases.
Container execution
By default the runner uses the first reachable container service, preferring
Docker over Podman. Merely installing a Podman CLI does not select an inactive
Podman VM. Use -b docker or -b podman to select a backend explicitly, or set
FEED_DISPLAY_TEST_BACKEND=docker as a shell default. An explicit -b wins.
An unreachable backend fails before creating build directories and reports the
original connection error.
Build/Scripts/runTests.sh -s libraries runs PHP and Composer inside the selected
PHP container; no host PHP/Composer installation is required. A dedicated
container network is created only for functional tests with a separate database
container. Library builds and SQLite tests use normal container networking.
-b host remains an explicit opt-in to local PHP/Composer execution.
Build/Scripts/runTests.sh -s testBackend -b host verifies these selection and
networking rules with disposable mock engines, without starting containers.
Local tests
Install the test dependencies for the TYPO3 version you want to test, then run the Unit and Functional suites:
Build/Scripts/runTests.sh -s composerInstall -t 14 Build/Scripts/runTests.sh -s unit Build/Scripts/runTests.sh -s functional
Use -t 13 to install the TYPO3 13 test setup. Functional tests use SQLite
by default. Run the coverageUnit or coverageFunctional suite to generate
Clover reports in .Build/coverage/. The runner's -h lists the lint suites,
PHPStan and the available database options.
Cleaning generated files
Build/Scripts/runTests.sh -s cleanBuild removes .Build (test dependencies,
Classic instances, downloaded Core archives, coverage and bundled test tools)
and temporary root Composer files. Other caches and generated output remain.
Build/Scripts/runTests.sh -s clean additionally removes caches, local test
configuration/runtime, TER ZIPs, generated documentation/browser reports,
temporary tool lockfiles and the generated SimplePie runtime bundle. The
versioned Build/SimplePie/composer.lock and source files are preserved.
Empty generated parent directories are removed; Playwright sources and baselines
keep their directory intact.
An active Classic Git checkout needs composer build-extension afterwards.
These file-cleanup commands do not require Docker, regardless of -b.
Build/Scripts/runTests.sh -s testCleanup -b host verifies both cleanup scopes
in a disposable fixture without installing dependencies or touching this checkout.

