RSS support in plane 6

As the project description says this project aims to make a stand alone collective to define RSS feed,
however we already have collectives like collective.ifttt and collective.syndication.

Can I have some more clear picture of what this project actually aims and how is it different from already existing capabilities of plone and associated collectives.

CC: @nileshgulia1 @mikemets @polyester

1 Like

@salty-ivy The idea is to develop a Plone 6 addon. Plone 6 means including volto frontend. I do not have experience with collective.syndication don't know if its even maintained.

This project is actually divided into 2 parts. "Embedding external RSS contents" and "Exposing Plone contents as RSS" . The first one is almost covered by an addon from redturtle which is called volto-rss-block addon. If there is room for improvement Maybe we can improve it directly on its repo itself( GitHub - RedTurtle/volto-rss-block) ?

For the second, we have to develop a "RSS behaviour" for listing pages or the search listing block....that we can provide RSS feed to external users. Still need to decide the best use case.

2 Likes

I think a better idea than having a dedicated RSS block would be to enhance the existing listing block to have the concept sources. Currently the listing block only works with queries against the catalog but in theory, anything that supplies a list of json objects with at least a title and a url could be a source.
e.g.

  • RSS feed
  • linked in news feed
  • related items to this current page
  • recommended pages
  • most popular pages coming from GA or momoto

so a volto "source" addon would register itself as a source, provide a UI to configure that source and then the end user can choose which source they want to use for a given listing, and depending on the source, determine which fields to include.

This is essentially have of the idea outlined in PLIP: I can easily switch back and forth a listing/row of teaser styles (repeater block with selectable source and manually added items) · Issue #4478 · plone/volto · GitHub

This would be a lot more flexible than a dedicated RSS block as any variations on the listing items would automatically work for RSS feeds too.

I'm not the mentor for this project but I think this would be great addition to volto if someone proposed this as how to solve embedding RSS feeds.

1 Like

Hey, thanks for the info!

After tinkering around with Plone for a few weeks I eventually understood how to solve both the problem statements: a way for Plone websites to integrate RSS Feeds into them using Volto Blocks, and a way to expose specific filtered Plone contents via Collection as RSS Feed.

However, I wasn't aware that RedTurtle already exists and solves the problem of embedding RSS Blocks within Plone, so my project proposal does include implementing a custom Volto Block for RSS Feeds.

Further, I agree with the idea that we could include the concept of sources in Listing Blocks directly. Correct me if I'm wrong, but using this approach, we would create an add-on that will provide a way to register different sources and a unified interface for configuring them.

To do that, we would maintain a registry of sources, where each source is an object that implements the Source interface right? I think then we can create an object for each source that implements the source interface registers with the add-on.

Also since we would be bodying the listing block to include a source selection on the dropdown in its configuration UI, so what finally happens is that - Auser selects the 'rss' source in the listing block, they would see a configuration UI with a text input for the RSS feed URL and a Save button. When you click the Save button, the feed URL is saved to the source. The listing block would fetch items from the RSS feed and display them. This is it right?

In this approach, wouldn't we have to manually define all configurations for every source that we have defined in the drop-down?

Also, this approach hadn't hit me in the proposal phase, of directly providing various types of Support by modifying the Listing Block to include all sorts of sources that do the bare minimum of supplying a list of JSON objects

Hey, I need help with the add-ons that will provide RSS Support in Plone 6. As mentioned above, there already exists RedTurtle for "Embedding external RSS contents" in a Plone page, which is what I was going to develop.

So instead, there is an opportunity to develop an addon that would enhance the existing listing block to have concept sources, and an interface to configure each source. This is a larger task than the previous one, so could you provide the necessary feedback on my approach above for doing the same? I'll need to modify my project plan and include all necessary changes, and send that for you to review.

The second part of the project, "Exposing Plone contents as RSS" has been written in detail in my proposal for the project, including an optimal use case of the plugin in my proposal. Could you provide feedback and ask for clarifications on that as well.

CC: @nileshgulia1 @mikemets @polyester

Ideally it would be a core feature rather than an addon. But you might decide to start it as an addon that would replace the existing listing block

It would be probably need a client side volto registry but yes.

Correct.

This is getting to the edge of my knowledge of the Volto framework.
There should be someway for an Volto addon to define an component that can be part of another blocks UI. Or at least json schema.
We did do this as part of the a form-block PR to add in backend defined fields for validation rules. But in this case I don't think it needs to come from the backend

it could be very useful for all sorts of other purposes. I hope whoever mentors this is onboard with the idea as it would be powerful future feature of plone.

A different idea but I'd love to also see the idea of a repeater block where how each item in a listing is displayed is determined by picking a block type rather than having to code a variation of the listing block itself.