On Tue, Mar 29, 2005 at 11:46:48PM +0200, Robert Douglass wrote:
I began rewriting the subscriptions module a bit today and wanted to check here if anyone else was also working on it? It would be a shame to double our efforts.
Here are my ideas which I don't have time to implement: There are two types of subscriptions: node and listing. Perhaps these should be two separate modules. For nodes (subscribe to a node, get the comments mailed), the best UI I have seen is Base Camp. Key elements of this translated into Drupal-speak: - When submitting a node you can choose who to subscribe individually or by group. - When viewing a node you can see who else is subscribed. - When viewing a node you can subscribe or unsubscribe yourself. But we can do better with choices. Your batch subscription to all nodes should be availiable through: - Individual emails - Digest email - RSS - Web only I want to see this work with project module too, focusing on replacing the 'my issues' page. My main problem with that page is that I have little control over what is and isn't there. Listing subscriptions (subscribe to terms, users, blogs, whatever) should work on /any/ listing. This will be possible once all the node listings in Drupal go through one system instead of modules making their own. The RSS delivery option will not be needed since the RSS baked into node.module works and there is potential for more modules to come and provide different versions of RSS and even ATOM. For both systems the mail should go through some sort of queuing mechanism. A module doing this without modification to the subscriptions module by overriding user_mail() is certainly possible. However, even calling user_mail() once per email address for a large distribution becomes a long process. Watch out: using hook_exit() on page serves that end in calling drupal_goto() does not have the advantage of doing server side processing after the user's page has been served because drupal_goto() waits for all the hook_exit() to execute before sending the HTTP header for forwarding. -Neil