[drupal-devel] Is anybody doing any major work on subscriptions module?

neil at civicspacelabs.org neil at civicspacelabs.org
Wed Mar 30 00:40:09 UTC 2005


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



More information about the drupal-devel mailing list