146

Product support

Visit this product's website for support.

Categories

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.

  • Found the plugin useful on 22 Jan, 2019

    Thank you for this very wel made solution!

  • 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.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