Syndication

by Nate Aune last modified Jan 23, 2006 10:15 PM
As we move into Web 2.0 defined by interoperability, it is becoming ever more important that Plone provide tools to interact with other systems. The most basic way to do this is by publishing content in Plone as RSS feeds, and subscribing to external RSS feeds and displaying them on the Plone site.

Publishing RSS feeds from Plone

Plone has had a syndication tool but it's not turned on by default and is a bit cumbersome to set up (requires going into the ZMI), and then enabling syndication for each and every folder on the site.

With Plone 2.1, it's now possible to subscribe to searches as RSS feeds, which allows for simple creation of ad-hoc RSS feeds. And one can also subscribe to a Smart Folder as RSS, which allows for a finer grain of control over what is returned in the list.

But the built-in RSS syndication tool for Plone does not have support for RSS 2.0 with enclosures, which means that it doesn't allow for syndication of rich media content such as audio, video and photos.

RSS 2.0 Syndication tools

There are a couple of 3rd party products that provide functionality to publish RSS 2.0 feeds:

Build a podcast from a Smart Folder

One very clever way to build podcasts, is to use Plone's built-in Smart Folder capabilities. During the Plone multimedia sprint, work was done by Salim and Chervol to add a podcast icon to the document actions in a Smart Folder. When you click on this icon, it returns an RSS 2.0 feed with the audio file enclosures. You can see this work in podcast.xml.pt in the ATAudio product.

A syndication solution based on Zope 3 / Five

Tim Hicks has also developed basesyndication and fatsyndication, tools which provide for publishing of RSS 2.0 feeds. These are very interesting developments because they have been written using Zope 3 and Five (fat = Five+AT).


Subscribing to RSS feeds from Plone

Just as one might like to publish their Plone content as RSS, one might also want to subscribe to RSS feeds from other external websites for display on their Plone site. There are three products which currently provide this functionality:

The CMFSin product has been around for over 3 years, but has seen very little improvement in the user interface. It's still necessary to go into the ZMI and paste in the RSS feed URLs into a text box. While this is fine for the more technical webmaster, the average Plone user would prefer a Plone-based tool for adding new RSS feeds.

Song Huang (author of the PloneCreativeCommons product) has repurposed CMFSin to display his Flickr photostream feed. The ATPhoto product is more ambitious in that it will actually import the photos from your Flickr account into your Plone site. But this may not be desirable if you have lots of photos in your Flickr account and don't want to import them into Plone - just display them.

Jon Stahl discusses the limitations of CMFSin and CMFFeed on his blog.

PloneRSS is a product written by Garth Bult, the same guy who developed CMFFeed. He has eliminated the dependency for Zeo, and is now using MySQL for the storage. Thanks to Jon for letting me know about this product (released today!).

The CMFContentPanels product allows you to set up a viewlet and paste in the RSS feed url. The interface is easy enough but a bit overkill if all you want to do is display some RSS feeds on your site.

I have not had a chance to try out PodChannel, but it appears to be a very straightforward solution for displaying subscribing to podcast feeds on your Plone site. He uses the example of NPR's podcast feeds.

A syndication solution based on Zope 3 / Five

Just as Tim Hicks has developed the syndication tools, he has also developed subscription tools based on Zope 3 / Five.


Conclusion

Ideally, we would have a syndication tool for Plone that lets us:

  1. Publish any folder, Smart Folder or search as an RSS 2.0 feed with enclosures.
  2. Subscribe to RSS 2.0 feeds and detect whether the enclosures are audio, video or photo and render the entry appropriately.
  3. Aggregate feeds similar to what planetzope.org and planet.plone.org do using PlanetPlanet.

Comments (5)

Jon Stahl Jan 23, 2006 08:44 PM
As I summarize at http://theploneblog.org/arc[…]tent-aggregation-for-plone, Gareth "CMFFeed" Bult just released PloneRSS, a next-generation solution for creating Plone content items from incoming RSS feeds. I think this is likely a great new point in the landscape of inbound RSS aggregation for Plone, and I hope that the Snow Sprinters consider using it as a starting point for an aggregation solution (items #2 & #3 above).
Jon Stahl Jan 23, 2006 09:22 PM
I'm in total agreement with virtually everything that Nate has to say. A couple of friendly amendments to the conclusions:

1) Is a great goal. A few minor features to publishing processes might include: sending pings to services like ping-o-matic when new items are published into a feed; offering not just RSS 2.0 but also RDF and Atom feeds.

2) This is the biggie... I think there are two valid stories here, which both need to be supported. 2a) where items in the incoming feed are marshalled (?) into full-fledged Plone content objects, and 2b) where they are simply reproduced ala CMFSin or CMFContentPanels.

3) Is really an extension of 2a).

For all of these, making the tools *extremely easy to use for non-technical end-users* is very important.
Jonah Bossewitch Jan 26, 2006 07:07 AM
What do people think about appropriating the smartfolder ui/metaphor to create inbound rss feeds? Call them remote smart folders?
Tim Hicks Jan 26, 2006 03:21 PM
If you decide to implement point 1 with fatsyndication, you will get RDF and Atom out of the box.
Tim Hicks Jan 26, 2006 03:16 PM
Just to clarify, my subscription products are simply frameworks for easily maintaining lists of portal members and/or email addresses of people, and associating these lists with specific content items. That's probably not quite what you are after here.