dodecastudio/craft-feedreader

A simple plugin to load and display RSS and Atom feeds in Craft CMS templates.

Installs: 1 424

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 1

Open Issues: 0

Language:Twig

Type:craft-plugin

2.0.0 2024-04-22 14:10 UTC

This package is auto-updated.

Last update: 2024-12-22 15:41:45 UTC


README

Requirements

  • Craft CMS 3.X, 4.X or 5.X
  • PHP 7.4+

Installation

Install the plugin as follows:

  1. Open your terminal and go to your Craft project:

    cd /path/to/project
    
  2. Then tell Composer to load the plugin:

    composer require dodecastudio/craft-feedreader
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for FeedReader.

Overview

The FeedReader plugin makes use of Craft's built-in Feeds API to load and display RSS or Atom feeds directly in templates. As the Feeds API was deprecated in Craft 4, this plugin borrows the original code from Craft 3 in order to ensure function across both these versions of Craft.

Using FeedReader

Fetching a feed

The getFeed variable will fetch a feed and return feed information and feed items as an array.

{% set newsFeed = craft.feedreader.getFeed("http://feeds.bbci.co.uk/news/uk/rss.xml", 43200, true) %}

You can then output information about the feed and the items it contains, like so:

{# Output feed info #}
<h1>{{ newsFeed.title }}</h1>
<p>Feed: <a href="{{ newsFeed.link }}">{{ newsFeed.link }}</a></p>
{# Output the feed items #}
<ul>
{% for newsItem in newsFeed.items %}
  <li>
    <a href="{{ newsItem.permalink }}">{{ newsItem.title }}</a> - {{ newsItem.date.date|date("Y-m-d H:i:s") }}
  </li>
{% endfor %}
</ul>

Supported parameters

The parameters available for the getFeed variable are:

Fetching feed items

If you don't need feed information and would like a little bit more control over the feed items, then the getFeedItems variable will fetch feed items and return them as an array.

{% set newsFeedItems = craft.feedreader.getFeedItems("http://feeds.bbci.co.uk/news/uk/rss.xml", 10, 10, 1000, true) %}

You can then output the items, like so:

{# Output the feed items #}
<ul>
{% for newsItem in newsFeedItems %}
  <li>
    <a href="{{ newsItem.permalink }}">{{ newsItem.title }}</a> - {{ newsItem.date.date|date("Y-m-d H:i:s") }}
  </li>
{% endfor %}
</ul>

Supported parameters

The parameters available for the getFeedItems variable are:

Plugin Settings

Default settings can be overridden. Please see the feedreader-config.php file for details.