[development] subscribe to a node

Bèr Kessels ber at webschuur.com
Wed Nov 1 09:55:44 UTC 2006


Hello

I think a general subscription framework may be the best Utopian solution. 
Or else some well thought out combination of modules (CCK + views + workflow + 
actions should offer it all), AND (in core) a *tiny*, specific subscription 
module, which solves only *one case* of subscription. 

Op dinsdag 31 oktober 2006 15:46, schreef Dries Buytaert:
> subscriptions.module

Basic review of subscriptions module

 * Subscriptions are hardwired to nodes and comments. This hardwire-mistake is 
made once with the file-handling framework architecture. Lets not go there 
again. 
 
 * Someone decided to hardwire 'blogs subscriptions'. This is far too 
specific.

 * user_mail is hardcoded into it. We all know this does not scale at all. The 
mailing engine should at least be pluggable. 

  * Mailing vars  (%tokens) are hardwired. If this is a general subscription 
system, that needs to be at least better configurable, but ideally the tokens 
alter-able by some hook(s).

  * Subscriptions offer no proper hookable points. Its either 'do as I say' or 
nothing. Ideally one can hook into various places in the subscription 
workflow and alter the send mails, alter who gets what etc. 

  * The UIs are all hardcoded into the system. It depends entirely on the 
case, what a good UI has/is and where it is. Some options I think of OOTMH
    * subscribe to all stuff from user X
    * subscribe to comments for node X
    * subscribe to revisions for node X (wiki) 
    * subscribe to a group of nodes (grouped by terms, tags, OGs, node types)
    * advanced subscriptions (where field F > X AND author.role in (admin, 
moderator)  etc) 

Some more technical "asides"
  IMO a cached menu with a path ''path' => "user/$user->uid/subscriptions"' is 
plain wrong. 

  "Unsubscribe from this node type. " We agreed never to use the word "node". 
And what the ** has a user/guest got to do with 'types'?

   Code style is very non-standard. It would need an almost 100% rewrite 
(style rewrite, notlogic) to be core-worthy.

   Code comments are inconsistent and need a big overhaul.

   I see a lot of fancy Superglobal usage and complex query-crafting. These 
are so fancy and so complex that after 15 minutes of staring, I can still not 
say if this is actually secure/safe. The fact one cannot review security 
well, itself, can be considered a security problem.

Bèr


More information about the development mailing list