PHPackages                             brookinsconsulting/bcrssfeeds - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. brookinsconsulting/bcrssfeeds

ActiveEzpublish-legacy-extension[Templating &amp; Views](/categories/templating)

brookinsconsulting/bcrssfeeds
=============================

eZ Publish Legacy extension which provides a template operator and fetch functions that provide additional eZ Publish RSS feed functionality within templates

1721PHP

Since Jun 13Pushed 10y ago1 watchersCompare

[ Source](https://github.com/brookinsconsulting/bcrssfeeds)[ Packagist](https://packagist.org/packages/brookinsconsulting/bcrssfeeds)[ RSS](/packages/brookinsconsulting-bcrssfeeds/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (1)

BC RSS Feeds
============

[](#bc-rss-feeds)

This extension implements a solution to provides a template operator and fetch functions that provide additional eZ Publish RSS feed functionality within templates.

Version
=======

[](#version)

- The current version of BC RSS Feeds is 0.1.0
- Last Major update: May 31, 2015

Copyright
=========

[](#copyright)

- BC RSS Feeds is copyright 1999 - 2016 Brookins Consulting, 2008 Kristof Coomans, 2008 Bertrand Dunogier and 1999 - 2015 eZ Systems AS.
- See: [COPYRIGHT.md](COPYRIGHT.md) for more information on the terms of the copyright and license

License
=======

[](#license)

BC RSS Feeds is licensed under the GNU General Public License.

The complete license agreement is included in the [LICENSE](LICENSE) file.

BC RSS Feeds is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License or at your option a later version.

BC RSS Feeds is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

The GNU GPL gives you the right to use, modify and redistribute BC RSS Feeds under certain conditions. The GNU GPL license is distributed with the software, see the file doc/LICENSE.

It is also available at

You should have received a copy of the GNU General Public License along with BC RSS Feeds in doc/LICENSE. If not, see .

Using BC RSS Feeds under the terms of the GNU GPL is free (as in freedom).

For more information or questions please contact:

Requirements
============

[](#requirements)

The following requirements exists for using BC RSS Feeds extension:

### eZ Publish version

[](#ez-publish-version)

- Make sure you use eZ Publish version 5.x (required) or higher.
- Designed and tested with eZ Publish Community Project 2014.11

### PHP version

[](#php-version)

- Make sure you have PHP 5.x or higher.

Features
========

[](#features)

### Dependencies

[](#dependencies)

- This solution depends on eZ Publish Legacy only

### Template operator

[](#template-operator)

This solution overrides the following template operator:

- Template operator : `bcrssfeed`

### Fetch functions

[](#fetch-functions)

This solution overrides the following template fetch functions:

- Fetch function: `list`
- Fetch function: `subtree_list`
- Fetch function: `has_export_by_node`
- Fetch function: `export_by_node`

Installation
============

[](#installation)

### Extension Installation via Composer

[](#extension-installation-via-composer)

Run the following command from your project root to install the extension:

```
bash$ composer require brookinsconsulting/bcrssfeeds dev-master;

```

### Extension Activation

[](#extension-activation)

Activate this extension by adding the following to your `settings/override/site.ini.append.php`:

```
[ExtensionSettings]
#
ActiveExtensions[]=bcrssfeeds

```

### Regenerate kernel class override autoloads

[](#regenerate-kernel-class-override-autoloads)

Regenerate kernel class override autoloads (Required).

```
php ./bin/php/ezpgenerateautoloads.php;

```

### Clear the caches

[](#clear-the-caches)

Clear eZ Publish Platform / eZ Publish Legacy caches (Required).

```
php ./bin/php/ezcache.php --clear-all;

```

Usage
=====

[](#usage)

The solution is configured to work virtually by default once properly installed.

You can use the template operators and fetch functions within your templates as needed.

### Fetch function 'subtree\_list' example

[](#fetch-function-subtree_list-example)

You can edit your pagelayout.tpl template override and add the following code where desired:

```
{def $rssfeedlist = fetch( 'rssfeeds', 'subtree_list', hash( 'node_id', $current_node.node_id, 'max_depth', 0 ) )
     $rssfeed = $rssfeedlist.0
     $has_rssfeed = is_object( $rssfeed )}

{if $has_rssfeed}
{def $rssfeed_uri = $rssfeed.access_url
     $rssfeed_alt_text = concat( "'", $current_node.name, '\' section\'s RSS Feed. Subscribe to this rss feed for notifications of new content to this secti\
on')
     $rssfeed_url = concat( '/rss/feed/', $rssfeed_uri )}

{/if}

```

(optional) You can edit your website's css file and add the following styles:

```
#rssBanner {
    position: relative;
    float: right;
    width: 32px;
    height: 32px;
}

img#rssIconImage {
    position: relative;
    float: right;
    width: 32px;
    height: 32px;
}

```

### Template operator 'bcrssfeed' example

[](#template-operator-bcrssfeed-example)

#### Template operator 'bcrssfeed' overrview

[](#template-operator-bcrssfeed-overrview)

This operator is used to conveniently display RSS feeds on a website. The idea is that various sections / chapters of the project will show different RSS feeds.

If you consider this structure:

```
/
/News
/News/Article1
/News/Article2
/Company/Article1
/Company/Article1

```

What we want is:

- show the 'News' RSS feed when browsing inside the 'News' section
- show the 'Company' RSS feed when browsing inside the 'Company' section
- show the 'Default' RSS feed when browsing another section (content root, or any other module)

The operator will consider that only ONE feed will be shown at a time, and will directly output the &lt;Link...&gt; tag.

#### Template operator 'bcrssfeed' setup requirements

[](#template-operator-bcrssfeed-setup-requirements)

Create a content class named 'RSS Feed' (or anything you think is convenient), with at least 2 attributes, both text lines: title, and url, both mandatory.

Create a 'system' folder (e.g. a folder that won't show from the frontoffice), named for instance 'RSS Feeds'.

##### Template operator 'bcrssfeed' settings customization

[](#template-operator-bcrssfeed-settings-customization)

Determine what content classes are supposed to be attached an RSS feed. Attached here means that when browsing below that node, a specific RSS feed will be offered.

For these classes, add a new attribute, named 'rss\_feed', as an object relation. The selection method can be set to 'Dropdown list', with the default node set to the 'RSS Feeds' container created above.

Finally, override globally the file 'rssfeedoperator.ini', and set the ContentClasses directive to the list of the content classes chosen above. If you consider that both 'folder' and 'frontpage' can be attached RSS feed, configuration will look like this:

```
[Settings]
ContentClasses[]
ContentClasses[]=frontpage
ContentClasses[]=folder

```

##### Template operator 'bcrssfeed' usage example

[](#template-operator-bcrssfeed-usage-example)

First, the operator needs to be added to your pagelayout so that the RSS feed link is added. This is done like this:

```
{rss_feed({rsfeed( is_set( $module_result.node_id)|choose( 0, $module_result.node_id ) )}

```

The expected parameter is the node ID to get RSS feed for. If we don't have a node (e.g. outside of the content module), we provide 0 as a parameter.

This piece of code should be placed inside a cache block for performances reason.

Let's say we want to show the RSS feed named 'Default' by default.

We first create a new object of class 'RSS Feed' in the 'RSS Feeds' folder. We use 'Default' as its title, and '' as the URL to the feed.

Then, we edit the root folder of the content tree, and in the rss\_feed attribute, we choose the 'Default' object.

Now if we want to show the 'News' rss feed when browsing the 'News' subtree, we follow these two steps again: create a new 'RSS Feed' content object in the 'RSS Feeds' folder, setting the title to 'News', and the URL to '', then edit the 'News' content object, and pick the newly created 'News' RSS Feed object as the RSS Feed attribute or our folder / frontpage.

Troubleshooting
===============

[](#troubleshooting)

### Read the FAQ

[](#read-the-faq)

Some problems are more common than others. The most common ones are listed in the the [doc/FAQ.md](doc/FAQ.md)

### Support

[](#support)

If you have find any problems not handled by this document or the FAQ you can contact Brookins Consulting through the support system:

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/fda10bb840bcf345ab87d5ec5bd7c79da0be8858fc1b754db272ca1fc45e49e2?d=identicon)[brookinsconsulting](/maintainers/brookinsconsulting)

---

Top Contributors

[![brookinsconsulting](https://avatars.githubusercontent.com/u/617031?v=4)](https://github.com/brookinsconsulting "brookinsconsulting (3 commits)")[![bdunogier](https://avatars.githubusercontent.com/u/235928?v=4)](https://github.com/bdunogier "bdunogier (1 commits)")

### Embed Badge

![Health badge](/badges/brookinsconsulting-bcrssfeeds/health.svg)

```
[![Health](https://phpackages.com/badges/brookinsconsulting-bcrssfeeds/health.svg)](https://phpackages.com/packages/brookinsconsulting-bcrssfeeds)
```

###  Alternatives

[mustache/mustache

A Mustache implementation in PHP.

3.3k44.6M291](/packages/mustache-mustache)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[whitecube/nova-flexible-content

Flexible Content &amp; Repeater Fields for Laravel Nova.

8053.0M25](/packages/whitecube-nova-flexible-content)[mopa/bootstrap-bundle

Easy integration of twitters bootstrap into symfony2

7042.9M33](/packages/mopa-bootstrap-bundle)[limenius/react-bundle

Client and Server-side react rendering in a Symfony Bundle

3871.2M](/packages/limenius-react-bundle)[nicmart/string-template

StringTemplate is a very simple string template engine for php. I've written it to have a thing like sprintf, but with named and nested substutions.

2101.7M30](/packages/nicmart-string-template)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
