Fetches RSS/Atom feeds to put on your website. It can be automated using a cronjob or triggered manually.
Issues
If you have issues using this plugin. Please create an issue on GitHub or contact us at octobercms@vdlp.nl.
Contribution
Any help is appreciated. Or feel free to create a Pull Request on GitHub.
Installation
composer require vdlp/oc-rssfetcher-plugin
RSS & Atom feeds
The plugin uses the laminas/laminas-feed
package to parse the RSS and/or Atom feeds. For more information on this package goto https://docs.laminas.dev/laminas-feed/
Components
The plugin is configured with 4 example sources and has a few components which help you to display items and/or sources on your website.
Items
Shows a list of most recent RSS items limited on the maximum number of items provided by you.
An example of implementation code in your CMS page:
title = "A list of items" url = "/items" layout = "default" is_hidden = 0 [rssItems] maxItems = 10 == {% component 'rssItems' %}
PaginatableItems
Shows a list of most recent RSS items with an additional paginator element.
An example of implementation code in your CMS page:
title = "A list of items (paginatable)" url = "/items" layout = "default" is_hidden = 0 [rssPaginatableItems] itemsPerPage = 3 == {% component 'rssPaginatableItems' %}
Sources
Shows a list of sources.
An example of implementation code in your CMS page:
title = "A list of sources" url = "/sources" layout = "default" is_hidden = 0 [rssSources] == {% component 'rssSources' %}
Events
To manipulate RSS items there are a few events which can be used:
vdlp.rssfetcher.item.processTitle
vdlp.rssfetcher.item.processContent
vdlp.rssfetcher.item.processLink
Use them like this:
Event::listen('vdlp.rssfetcher.item.processTitle', function (&$title) { $title = $title . 'A'; }); Event::listen('vdlp.rssfetcher.item.processContent', function (&$content) { $content = strip_tags($content); });
Reporting Widgets
This plugin contains also a RSS Headlines widget to show the latest headlines on your Dashboard.
This widget has three configurable properties: maxItems
, title
and dateFormat
.
Cronjob
There are many ways to configure a cronjob. Here's a basic example of cronjob configuration line:
5/* * * * php path/to/artisan vdlp:fetch-rss >> /dev/null 2>&1
The above line takes care of fetching all sources every 5 minutes.
The vdlp:fetch-rss
command takes an optional source_id
argument.
Provide the source ID if you want to fetch only 1 source at that time.
Execute from code
In your plugin code you can also use the following code to execute the Artisan command:
<?php use Artisan; // ... Artisan::call('vdlp:fetch-rss', ['source' => 2]);
Or using the RssFetcher
singleton:
RssFetcher::instance()->fetch(2);
Issues
If you have issues using this plugin. Please create an issue on GitHub or contact us at [octobercms@vdlp.nl]().
Contribution
Any help is appreciated. Or feel free to create a Pull Request on GitHub.
-
Mark van den Elzen
Found the plugin useful on 22 Jan, 2019
Thank you for this very wel made solution!
-
Wiego Bergsma
Found the plugin useful on 17 Jan, 2019
This plugin could also be used to show messages from your favourite October CMS theme and plugin developers on your dashboard (e.g. notifications of new products).
Since RSS feeds are an open standard this is available to all authors who make an RSS feed available and publish the address in the theme or plugin documentation.
End-users would only need one thing.... this plugin :)
-
3.3.0 |
Added Chinese translations May 06, 2024 |
---|---|
3.2.1 |
Update plugin icon Apr 14, 2023 |
3.2.0 |
Maintenance update -- see CHANGELOG.md Apr 05, 2023 |
3.1.0 |
Maintenance update -- see CHANGELOG.md Sep 23, 2022 |
3.0.4 |
Update CHANGELOG.md and fix v3.0.0 description Sep 10, 2021 |
3.0.3 |
Replace the use of Event facade with Event dispatcher Aug 04, 2021 |
3.0.2 |
Fix type in Items component (Items::$items) Jul 07, 2021 |
3.0.1 |
Fix type in Sources component (Sources::$sources) Jul 07, 2021 |
3.0.0 |
Drop support for PHP 7.4 (minimum required PHP version 7.4) Jul 06, 2021 |
2.2.1 |
Fix error when performing a migration rollback Jul 06, 2021 |
2.2.0 |
Update plugin dependencies (minimum required PHP version 7.3) May 28, 2021 |
2.1.0 |
Fix Author parsing for Atom/RSS feeds Apr 20, 2020 |
2.0.0 |
Replace Zend Framework with Laminas and added events Mar 13, 2020 |
1.2.0 |
Improve item saving Feb 07, 2020 |
1.1.0 |
Code improvements (>= PHP 7.1) Nov 05, 2019 |
1.0.5 |
Escape output to prevent XSS injections Jan 18, 2019 |
1.0.4 |
Code optimizations Oct 12, 2018 |
1.0.3 |
Fix SQL error with `enclosure_length` attribute Oct 12, 2018 |
1.0.2 |
Move publish_new_items to Sources table Oct 12, 2018 |
1.0.1 |
Add correct controller permissions Jul 18, 2018 |
1.0.0 |
First version of RssFetcher Jul 18, 2018 |