As it stands today Drupal has one type of feed; RSS feeds. If any other feeds need to be added they have to duplicate the functionality of what system.module does. You can see this in the atom.module.

The three patches I am submitting do:

Remove the control of feeds from the system module.
Creates a core module "Syndicate" that controls how many nodes are brought into the feed at a time and teaser length.
Creates a submodule; atom. The feeds it creates get their settings from the Syndicate module.

What does this accomplish:
Allow admins to determine what type of feeds they want to serve up. Atom, RSS, both (http://drupal.org/node/202018)
Allow admins the ability not to serve feeds at all (http://drupal.org/node/28337)
Adding different feed types doesn't re-create similar functionality

What have I done so far:
I took the code from the Atom module that deekayen maintains and split it up into a Syndicate module, and an Atom sub module.
Activating the Syndicate module doesn't do much on its own except set node preferences.
Activating the Atom module, which depends on Syndicate, activates the ability to serve Atom feeds with the full capabilities of the original Atom module.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

samirnassar’s picture

Oops, forgot to attach patches.

keith.smith’s picture

Status: Active » Needs work

There are patches, so changing to "patch (code needs work)".

This seems to be a worthwhile goal, but for starters, the three patches should be in the form of a single consolidated patch that meets code style guidelines.

samirnassar’s picture

Thanks for the feedback Keith.

Here is a consolidated patch.

keith.smith’s picture

Thanks for the unified patch -- that makes things easier to review.

Isn't there other feed-related functionality that would need to be moved to the proposed syndicate.module as well? Note that I haven't looked -- but this doesn't look like much "moving around". What about things like the system module's Syndicate block? To turn off feed functionality, one would disable the proposed syndicate module? Would there be an rss.module parallel to atom.module?

If this were to be a set of new core modules, they would IMHO have to have hook_help implementations, plus this proposed change may impact some things in the current embedded help. I can help you write some of this if we get that far, but we need to keep the help text in sync with changes as best as possible.

Obviously, FAPI #descriptions like 'aka the teaser' are not very helpful, plus there code style issues here and there, mainly in comment formatting as far as I saw (Capitalize beginning word, end sentences with periods, atom should be "Atom" [I guess]), etc.

deekayen’s picture

subscribing

samirnassar’s picture

I started small because I didn't want to get cold feet and because I thought it is easier to explain what I am trying to do with a working example.

There is probably more feed-related functionality in system.module that I haven't moved such as the code to generate the RSS feeds. My plan is to take that code, make it similar to atom.module and roll another patch now that I am comfy with diff and patch.

As far as architecture goes. My personal view is that syndicate.module doesn't need to be activated on install unless people are using a blogging profile. Perhaps blog.module, and others, could use a depend on syndicate.module. I am not wedded to that way of doing things.

Full ack on hook_help. I'll scour other modules and start writing.

I'll get cracking on the functionality first though.

Wim Leers’s picture

Although you're definitely right that this needs major improvements, I'd wait for the node rendering refactoring patch, because it will change this part of Drupal completely.

See http://drupal.org/node/145551.

samirnassar’s picture

Wim,

Thanks for the heads up. From what it sounds like the patch would allow for easier generation of a variety of things, including RSS and Atom feed?

Wim Leers’s picture

Exactly. :)

samirnassar’s picture

Once the status of #145551: Enable loading and rendering into multiple formats (html, xml, json, atom, etc.) and #134478: Refactor page (and node) rendering is cleared up I would like to move forward with this patch.

Either those issues make it to D7 and make writing this patch easier or those issues are postponed until D8. If it is the latter then I want to lobby hard to have this patch made ready for inclusion to Drupal7.

Reason for inclusion:

The patch doesn't change that much and so is pretty harmless
The patch answers several cosmetic issues with drupal
The patch allows for extendability of syndication mechanisms in the absence of the node rendering refactoring issue and the rendering in JSON and XML issues

Dave Reid’s picture

I really like this idea to split off a "Syndication" module, and I'm marking it on my personal D7 watch list! I'll help provide input, insights and review as needed.

samirnassar’s picture

Dave I am happy to hear that. To be honest I am twiddling my thumbs here because I have no idea what the progress of #134478: Refactor page (and node) rendering and #145551: Enable loading and rendering into multiple formats (html, xml, json, atom, etc.) is. The latter is waiting on the former but it isn't clear if these will get into Drupal 7.

Fortunately my patch is simple enough to not need much work if those two issues don't make it to Drupal 7. I am somewhat worries that if those issues don't get into Drupal 7 at too late a stage it would rob this patch of widespread testing, feedback and mindshare.

Jaza’s picture

I agree wholeheartedly with this patch. Feeds are way too closely coupled with system.module and with the core includes right now. They can't be disabled, and they can't be easily extended / overridden.

Waiting for the node rendering patch to get in would be the best idea, as that will take care of most of the problems that this patch is trying to solve. However, should that patch fail to make it for D7, I'd definitely vote to get this patch in as an interim measure (or perhaps as more than that).

samirnassar’s picture

The next steps to make this work are:

  • Clean up this patch and make it work against HEAD again.
  • Implement hook_help
  • Make sure embedded help doesn't break
  • Keep code clean and properly formatted
  • Make sure the patch removes vestigial RSS functionality from system core module
  • Add RSS2 as a submodule
  • Write tests

I think making the patch work without regard to the node rendering issue is a good place to work from. If the node rendering issue is resolved the the patch can be reworked. If the node rendering patch gets pushed into Drupal 8 then the Syndication module is ready to go into Drupal 7.

Dave Reid’s picture

Yes, it would be great to have the node rendering patch in first, but we can't afford to wait on another patch to get this rolling and get more support behind it. Let's also make sure our solution maybe has some kind of user access control like that proposed in #28337: Add permissions to disable RSS feeds.

momper’s picture

subscribing

Dave Reid’s picture

Brainstorming... it'd be nice to have modules (like blog, taxonomy, node, etc) that have feeds provide information on those feeds via a hook_feeds() similar to hook_menu() so that a syndication module can list all the feeds for a site and be able to control access/permissions/feed types for the individual feeds. Modules would provide the basic node list to the syndication module, and the syndication module would perform the XML/RSS/etc formatting. Brainstorming...

marcrocs’s picture

I got to add to this discussion. In the case of a Drupal site being built "members only" RSS feeds can serve as an easy leak of info from behind the walled garden. A member could pass the RSS feed along to a non member, that non-member may not be able to enter the site with out his buddies password but could follow a thread of conversation via RSS with out the posters or admins realizing it. It's easier to convince members to not share there account with non members, log ins are logged via IP address . BUT sharing an RSS feed can not be caught. Only solution is to bare minimum the RSS feed to title or less info.

This is in part why I'm considering interrogating phpBB3 or other forum into my drupal site as RSS feeds don't even exist with out being turn on or mods.

Arguably people can still copy and paste but being able to turn off RSS feeds to the degree this issue is suggesting would make me happy.

Dave Reid’s picture

Dave Reid’s picture

Issue tags: +RSS, +syndication
GeminiAgaloos’s picture

+10

I vote that samirnassar's patch be worked on and tested today separately from the node rendering issue. This is an important issue for me and samirnassar's solution looks like a good way to get this issue resolved fast.

I even vote that this patch be tested on the 6.10 version for people like me who would very much welcome samirnassar's solution. People who'd need/want it can then just patch their 6.10 version instead of waiting for D7/D8.

Anonymous’s picture

Subscribing.

kaakuu’s picture

FileSize
41.67 KB

It will be a very useful thing to have.
I submitted a picture-idea in another issue list but it was said that it was out of scope of that issue.
Submitting the picture-idea once again.

Weka’s picture

+1 vote for any type of control of the RSS feed functionality build in core.
Many thanks to phpdiva for providing the RSS Permissions module as an interim solution for D6.

voxpelli’s picture

Just added a comment to #145551: Enable loading and rendering into multiple formats (html, xml, json, atom, etc.) regarding putting Services into Drupal 8 core. Services REST Server has quite an interesting system when it comes to creating feeds of many different kinds. Adding a comment here just so you're aware of it.

aaron’s picture

Version: 7.x-dev » 8.x-dev

version change.

Anonymous’s picture

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Issue summary: View changes
Status: Needs work » Postponed (maintainer needs more info)

With no activity in almost over 10 years wonder if this is still a valid feature request for core?

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.