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.
Comment | File | Size | Author |
---|---|---|---|
#23 | rsspublishing-drp_0.JPG | 41.67 KB | kaakuu |
#3 | consolidated-syndicate-central.patch | 16.82 KB | samirnassar |
#1 | clean-system-admin.patch | 1.27 KB | samirnassar |
#1 | clean-system-module.patch | 936 bytes | samirnassar |
#1 | syndicate-central.patch | 14.42 KB | samirnassar |
Comments
Comment #1
samirnassar CreditAttribution: samirnassar commentedOops, forgot to attach patches.
Comment #2
keith.smith CreditAttribution: keith.smith commentedThere 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.
Comment #3
samirnassar CreditAttribution: samirnassar commentedThanks for the feedback Keith.
Here is a consolidated patch.
Comment #4
keith.smith CreditAttribution: keith.smith commentedThanks 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.
Comment #5
deekayen CreditAttribution: deekayen commentedsubscribing
Comment #6
samirnassar CreditAttribution: samirnassar commentedI 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.
Comment #7
Wim LeersAlthough 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.
Comment #8
samirnassar CreditAttribution: samirnassar commentedWim,
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?
Comment #9
Wim LeersExactly. :)
Comment #10
samirnassar CreditAttribution: samirnassar commentedOnce 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
Comment #11
Dave ReidI 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.
Comment #12
samirnassar CreditAttribution: samirnassar commentedDave 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.
Comment #13
Jaza CreditAttribution: Jaza commentedI 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).
Comment #14
samirnassar CreditAttribution: samirnassar commentedThe next steps to make this work are:
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.
Comment #15
Dave ReidYes, 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.
Comment #16
momper CreditAttribution: momper commentedsubscribing
Comment #17
Dave ReidBrainstorming... 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...
Comment #18
marcrocs CreditAttribution: marcrocs commentedI 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.
Comment #19
Dave ReidComment #20
Dave ReidComment #21
GeminiAgaloos CreditAttribution: GeminiAgaloos commented+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.
Comment #22
Anonymous (not verified) CreditAttribution: Anonymous commentedSubscribing.
Comment #23
kaakuu CreditAttribution: kaakuu commentedIt 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.
Comment #24
Weka CreditAttribution: Weka commented+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.
Comment #25
voxpelli CreditAttribution: voxpelli commentedJust 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.
Comment #26
aaron CreditAttribution: aaron commentedversion change.
Comment #27
Anonymous (not verified) CreditAttribution: Anonymous commentedThis issue is related, #1839468: [Followup] Replace aggregator rss parsing with Zend Feed.
Comment #40
smustgrave CreditAttribution: smustgrave at Mobomo commentedWith no activity in almost over 10 years wonder if this is still a valid feature request for core?