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