New Module: Comment follow-up notification mails for anonymous AND registered users with EASY unsubscribe

Christoph C. Cemper - August 22, 2006 - 11:00


What we all know and love from typical blogging systems like MT or Wordpress just isn't there, so it has to be created!

History

Since I started using and implementing Drupal as a CMS and also on blog sites I wondered why there is no module to implement the profane comment follow up e-mail that I knew from Movable Type and Wordpress.

However, there are a lot of features in modules like "subscription" and "notify" - which both let you basically subscribe to content of ANY kind, which is a very generic feature.

None of the modules, hacks and tipp I ran across however offered everything ready-to-go for anonymous users as well - everyone required the user to be created prior to comment notification, which is a different approach ( "Make it easier to signup and only talk to those that take the extra minute to sign up")

The long waiting userbase

A lot of questions and requirements were posted, to list just a few

http://urlgreyhot.com/personal/weblog/anonymous_commenting_in_drupal_4_5...
no changees or updates since may

http://drupal.org/node/64920
=> answer: "just make signup easier" :-/

http://drupal.org/node/76711
=> answer: "use subscriptions module" - hey and the anons?

Both notify and subscription were created in 2003.

Nobody that was able to create a drupal mod obviously has since understood the
urgent need to drive one-time users that comment back to you site to convert them
to real registered users... this conversion step is one essential one in building a blog comment community.

Features

So today I am implementing "comment_notify" with the features

- to mail anonymous users about comment follow-ups
- to mail registered users about comment follow-ups
- to allow both by the click on ONE url to sign out of a specific post followup
- to allow registered users to preset their follow-up setting in their profile

The feature
- to keep anonymous user data persistent in a cookie
is already implemented in comment_info and works great - thanks!

I believe that's a module that's badly needed by all Drupal Bloggers - especially those that understand that a tight contact with commenters (only 1-2% of readers!) is required to build a good user base!

Design issues

Design issues:

1) "Quick Unsubsribe" works by clicking a single link like mydomain.com/comment_notify/disable/89023890423809

2) a notification mail shall ONLY be sent at the time a comment is published, to avoid users getting nagged when comment spam hits your moderation queue.. therefore a clean "publish" hook call from comment is needed, which isn't there yet

Compatible changes to "comment" module

1) hook-chaos

The module "comment" needs to signal the final "publish" to it's hooks,
but only calls "update","insert" and "moderate" and even "publish" sometimes
in variuous fashions and not even passes the "comment" status to it's sub hooks.

This is a bad design control flow as well as a real performance issues as sub hooks would
neet to re-select the just created comment from the database (see http://drupal.org/node/50827)

This will be fixed by implementing the single "publish" hook in 2 essential places in 2-3 extra lines

this change is backwards compatible

2) notify flag in comment data model

the wish to notify on a per node basis will be implemented as a single flag in the datamodel
which will be set at the comment time and REset with the QUICKURL

this means that QUICKURL is not really a security-relevant thing, as it only allows update of that
single flag from external system.

this change is backwards compatible

Usefull other mods

the modules to be used together with comment_notify are

comment_info
for keeping commenter credentials persistent in a cookie
(not required but very essentially needed!)

Related modules that just don't do the job

commentmail
This module is for sending emails to registered users. It includes a
custom "mail" content type, but can also be used to add emailing to any
existing content type.

notify
subscription only for reg'ed users

subscriptions
subscription only for reg'ed users

Are you publishing it today, or just starting development?

sja1 - August 22, 2006 - 13:38

Hi, your module sounds great, but I can't find it among the module downloads. Is your post simply announcing that you are going to start building the module, or does the module already exist? If so, where can we download a copy?

Thanks!

Steve

WIP - work in progress

Christoph C. Cemper - August 22, 2006 - 13:49

hi Steve,

I started working last night til 6 (in the morning), got up at 12 again, and wanted to announce this...

actually I plan on rolling out the first version on

http://www.marketingfan.com

in the next hour

I still don't have a contributor account, but any help in testing is appreciated (needs DP 4.7.3, patched comment.module) - no production use yet

best,christoph

testers wanted + PQSQL test environment needed

Christoph C. Cemper - August 22, 2006 - 14:33

I'm just finishing this stuff and rollit out on http://www.marketingfan.com/

reading + commenting there /preferable anon and registered would be a great help for me
(of course giving me feedback then!)

Also I don't have a PGSQL environment here for the testing of the .install
(I need one additional field in the comments table, very simple, but want it tested)

That upgrade would then probably need to go into the core

cheers-christoph

let's go testing _ got the

Christoph C. Cemper - August 22, 2006 - 16:06

let's go testing _ got the first version up on http://www.marketingfan.com/

the mysql patch worked fine

notice the user account profile settings once you registered !

reading + commenting there /preferable anon and registered would be a great help

some additional notes for the first version

Improvements to comment workflow

- in Preview the message is displayed to warn the user that his comment is NOT YET posted
- Also in Preview the "post comment"-button is duplicated with a weight -99 to stay just below that
message, so people don't have to scroll down all the way if they want to comment quick

- After posting a thank you message including the # of notification mails is displayed
i.e. "Thanks for your comment! I just sent out 4 follow-up mail notifications!"

Configuration options to work with:

Send notification mails in background (future use)
for big sites and even nodes with 50+ comment the in-sync mail sending can lead to a massive delay... so these mails will be put into a notification queue and sent a bit later via cron.
Let registered users select notification on a node basis

letting registered users select/unselect if they want to be notified.
If this is disabled, this setting is propagated from their user profile, hence reducing and clutter and confusion

Default form setting if anonymous users should get an email alert for follow up comments

This flag presets the flag for the follow-up notification on the form that anon users will see when posting a comment

Default mail text for sending out the notifications

this should be clear, but you can use a ton of variables in here to get the notification
as big or small as you wish

you can use the following variables to be replaced
%commname = the username who posted the comment
%comment_url = the full url of the post and comment - note: if you have paging enabled, this does not work correct - set your max comments per page so that all fit on one page or reverse order them
%node_title = the title of the node that was commented on
%node_teaser = the teaser of the node that was commented on
%node_body = the body of the node that was commented on
%mission = site_mission text
%name = username receiving the alert
%site = your site
%uri = base_url of site
%uri_brief = base_url of site w/o http
%date = the current time
%login_uri uri to login the user
%edit_uri = uri to edit user profile
%link1 the QUICKLINK to disable future follow-up otifications for the user

looks like it works GREAT!

dnorman - August 22, 2006 - 16:26

looks like it works GREAT! Nice work! Reminiscent of the comment mailer in WordPress, which was one of the very few things I still miss from my WordPress days...

It'd be handy if the comment text could be (optionally?) inserted in the email itself, rather than requiring a clickthrough.

Very cool. Looking forward to rolling this out on my blog!

you got the beta files

Christoph C. Cemper - August 22, 2006 - 17:26

hi,

already added the following variables to use in the comment text

%commtext = the text of the posted comment
%commsubj = the subject of the posted comment

Darcy, and I already mailed you the ZIP ,
so if you want you can set this up on your own site today for further testing

remember to replace the comment.module as well as it contains

- a fix to handle the "publish" hook correct for it to work with approval queues, immediate posts, bulk approval etc..
- and handling of the new "notify" field in the comments table

(all based on Drupal 4.7.3 of course)

your feedback appreciated before I post that zip here public on drupal.org

cheers-christoph

where can i download it? i

ezichko - August 22, 2006 - 23:28

where can i download it? i have been looking for something like this for ages!

I am just in testmode

Christoph C. Cemper - August 22, 2006 - 23:35

Hi,

I put it into production at http://www.marketingfan.com/ already
and d'arcy norman started testing with it as well...

I just need to make some fixes/cleanups and can then mail it to the 3rd alpha tester...

anyone?

christoph

I am just in testmode

Christoph C. Cemper - August 22, 2006 - 23:49

Hi,

I put it into production at http://www.marketingfan.com/ already
and d'arcy norman started testing with it as well...

I just need to make some fixes/cleanups and can then mail it to the 3rd alpha tester...

anyone?

christoph

I just uploaded a first beta version

Christoph C. Cemper - August 23, 2006 - 01:13

I just uploaded a first beta version at

http://weblog.cemper.com/a/200608/22-module-for-comment-notification-for...

This module has already been tested in production by D'Arcy Norman and on Marketingfan
it's there as I don't have CVS/project/committer access on Drupal.org so far (but I applied)

The zip also contains a small diff file showing the minimal changes needed to the core comments.module ... :-) I already earned 2 beers in canada with these 18 hours work :)

dude - I owe you WAY more

dnorman - August 23, 2006 - 03:45

dude - I owe you WAY more than 2 beers. Although there are some REALLY good Canadian beers :-) (but, I guess an Austrian would know about good beer, too...)

no prob getting some candian beer

Christoph C. Cemper - August 23, 2006 - 17:47

>guess an Austrian would know about good beer, too.

LOL - yes I do... but no prob getting some candian beer :-) is there any cool SES,SEW or DrupalCon in Canada? or do you come to brussels?

any more test feedback?

Christoph C. Cemper - August 23, 2006 - 12:23

any more test feedback?

broken link

likewhoa - February 24, 2008 - 08:59

please fix, looking forward to testing your module contribution.

new test version

Christoph C. Cemper - August 23, 2006 - 17:35

I got a new test version up on

http://weblog.cemper.com/a/200608/22-module-for-comment-notification-for...

with following fixes for you today:

- Heine found a possible threat - preventing SQL injection now
- reg'ed users weren't mailed to anymore
- the disabling of notification disabled them by username, so you could disable it for all
users called "anonymous" or "guest" - now considering the mail address and userid as well
- minor cosmetic, removed debug output

release ready

Christoph C. Cemper - August 24, 2006 - 18:33

Hi folks,

what do you think? is it release ready? I think so!
(but I don't have my CVS account here yet)

Can anonymous (unregistered)

tain - August 25, 2006 - 19:33

Can anonymous (unregistered) users sign up for notification of new content and changed content?

Hi, this module was made to

Christoph C. Cemper - September 5, 2006 - 07:19

Hi,

this module was made to implement "comment" notification as known from other blog systems,
not for any type of content subscription... I believe the "subscribe" module would be needed (and hacked?) for that

christoph

Status?

drumdance - September 14, 2006 - 19:32

I'd use this module in a heartbeat if it were available. Is there an ETA on when it will be released? I'm willing to donate $$$ if that helps.

The following sentence is true.
The preceding sentence is false.
http://www.AskDerekScruggs.com

It IS

Christoph C. Cemper - September 22, 2006 - 08:49

Hey DrumDance,

that module IS available in the download on my website listed above...

I just didn't setup the whole drupal module stuff you see here...
but please consider it BETA

$$$ are good - would motivate me to fix & setup the "drupal-like" module structure TODAY :-)

Just creating a project page

DaveNotik - October 5, 2006 - 16:55

Just creating a project page on drupal.org and housing it there is simple and would be very beneficial, letting others start submitting patches and building a community around the module.

--D

--
http://dave.notik.com

I agree - and planned for

Christoph C. Cemper - October 5, 2006 - 18:37

I agree - and planned for that... just so busy these days... but I'll do that

Hi Christoph, Looks like a

harriska2 - October 11, 2006 - 16:07

Hi Christoph,

Looks like a great module - especially when the captcha issues get ironed out. Did you implement a blacklist with your drupal install or do you find that it filters out anonymous spammers pretty well?.

thanks!

Hi, the spammers should be

Christoph C. Cemper - October 12, 2006 - 21:20

Hi,

the spammers should be caught by Akismet , I don't do any additional spam filtering

--- http://www.cemper.com
--- http://weblog.cemper.com
--- http://www.marketingfan.com

Awesome Module

adrian.k - November 22, 2006 - 06:23

Good Job. This is exactly what I've always needed for my website.

I have it installed at roadsnw.com and I'm still working a few bugs out. I've not dug into them yet (day job getting in the way), but it's looking good so far.

I haven't thought of a way to deal with it yet, but the notification emails aren't able to handle PHP input formats. Most of my pages have bits of PHP in them, and the notify outputs the raw PHP code along with any regular HTML content outside of the php tags. If I can get that taken care of, I'll post a blurb about that too.

Error when bulk-approving comments

adrian.k@drupal.org - November 23, 2006 - 05:07

I get the following error when I attempt to use the admin/comment bulk-approval method of Administer > Comments > approval queue .

# warning: Invalid argument supplied for foreach() in
/home/akuepker/roadsCMS/modules/node.module on line 359.
# warning: implode(): Bad arguments. in
/home/akuepker/roadsCMS/modules/node.module on line 363.
# user warning: You have an error in your SQL syntax. Check the manual
that corresponds to your MySQL server version for the right syntax to
use near '' at line 1 query: SELECT n.nid, n.vid, n.type, n.status,
n.created, n.changed, n.comment, n.promote, n.moderate, n.sticky,
r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log,
r.format, u.uid, u.name, u.picture, u.data FROM node n INNER JOIN
users u ON u.uid = n.uid INNER JOIN node_revisions r ON r.vid = n.vid
WHERE in /home/akuepker/roadsCMS/includes/database.mysql.inc on line
120.

No notifications are sent out when this occurs. When I approve comments individually via the Administer block in the comment editor, everything works fine. I traced it down to comment_notify, as this doesn't fail to reproduce when any of my other modules are disabled.

I'll work on this later this weekend once the paying customer's stuff is done.

I am using this module too

ezichko - November 23, 2006 - 18:45

your site

harriska2 - December 4, 2006 - 16:37

Is your site on drupal 4.7 or 5. Also, what module are you using for your point system (like digg I take it).

cool site, clean, and really fun.

As said above you need a

filip_tc - December 14, 2006 - 01:24

As said above you need a project page and start focussing on drupal 5.

Very excited about this, yet I just don't understand why this is the first project with this aim....

Phil

Yep, agree - just in the

Christoph C. Cemper - December 27, 2006 - 23:44

Yep, agree - just in the process of setting up the project page...

stuff is committed in the

Christoph C. Cemper - December 28, 2006 - 00:44

stuff is committed in the drupal-contrib at /modules/comment_notify/
however the creation of the project page didnt work and told me

This project name is already in use.
The specified CVS directory conflicts with that of an existing project.

when I used

comment_notify

as short project name

I mailed admins about this issue...

I´m sorry, but as I don´t

Rosamunda - January 8, 2007 - 15:48

I´m sorry, but as I don´t really know how to patch... (embarrased) even after reading carefully the patch info here at drupal.org ... well... I can´t make this module work, it appears (naturally) an error in the database.
I think that´s because that diff file that I cannot make it work.
Could anyone be so kind as to attach the final result of the file, or tell me what should I change at the database?

I´ve replaced the comment.module for the one that provides Christoph, but don´t know what to do whith this stuff:

2c2
< // $Id: comment.module-diff-for-comment_notify.diff,v 1.1 2006/10/19 12:32:07 ccc Exp $
---
> // $Id: comment.module-diff-for-comment_notify.diff,v 1.1 2006/10/19 12:32:07 ccc Exp $
564d563
<
631c630
<         db_query("INSERT INTO {comments} (cid, nid, pid, uid, subject, comment, format, hostname, timestamp, status, score, users, thread, name, mail, homepage) VALUES (%d, %d, %d, %d, '%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s')", $edit['cid'], $edit['nid'], $edit['pid'], $edit['uid'], $edit['subject'], $edit['comment'], $edit['format'], $_SERVER['REMOTE_ADDR'], $edit['timestamp'], $status, $score, $users, $thread, $edit['name'], $edit['mail'], $edit['homepage']);
---
>         db_query("INSERT INTO {comments} (cid, nid, pid, uid, subject, comment, format, hostname, timestamp, status, score, users, thread, name, mail, homepage,notify) VALUES (%d, %d, %d, %d, '%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s')", $edit['cid'], $edit['nid'], $edit['pid'], $edit['uid'], $edit['subject'], $edit['comment'], $edit['format'], $_SERVER['REMOTE_ADDR'], $edit['timestamp'], $status, $score, $users, $thread, $edit['name'], $edit['mail'], $edit['homepage'],$edit['notify']);
634c633
<
---

648a648
>        
649a650,651
>       else
>         comment_invoke_comment($edit, 'publish');
1003a1006
>
1091d1093
<       cache_clear_all();
1092a1095
>     cache_clear_all();

How could I update the comments table?
Thanks you very much!! Sorry about this silly task...

Rosamunda

Which errors are you

Christoph C. Cemper - January 12, 2007 - 11:54

Which errors are you getting?

Your comments-table should have an additional attribute "notify" now if you enabled the comment_notify in the module page ... the .install file adds that field to the database

If you used the patched comments.module that provided you should be fine...

LMK please
christoph

Thanks Christoph! You are

Rosamunda - January 19, 2007 - 18:16

Thanks Christoph!
You are right... I´m happily installing it again now :-)
Thanks!

Rosamunda

Your module project page has

filip_tc - January 8, 2007 - 19:26

Your module project page has been created. (http://drupal.org/project/comment_notify).
It seems that there is no release yet though. How is the drupal 5 branch going btw?

Cheers,
Phil

Phil, I added that package a

Christoph C. Cemper - January 12, 2007 - 13:00

Phil, I added that package
a downloadable package will not be available and this release will not be published until the packaging scripts run again (12 hours or so)

no version5 currently ... plan to start that next week hopefully

Anxiously awaiting version 5

Lloyd Standish - January 25, 2007 - 15:28

I am a new Drupal user - I recently started with version 5. I used WordPress briefly until I discovered Drupal. I think your new module is one of the most important ones for community building. Thanks very much for undertaking this!

I'll have to wait until your version 5 is ready to be able to use it. I just wanted to add some words of encouragement!

Kudos!

funana - January 19, 2007 - 13:54

Great module. Should really go in core for Drupal 6!

__

SEO Tips For Successful Drupal Sites
__
Cape Verde News & Community
My Info Collection

Yeah, I think so to... and

Christoph C. Cemper - January 25, 2007 - 11:38

Yeah, I think so to... and many others confirmed that...

but the fathers of Drupal think "anonymous comments are not what we designed drupal for",
so I believe we won't see that anytime soon :-(

Great offer

morphir - January 26, 2007 - 13:54

Hello,

I've not tested this module. But it's great to see ppl appreciate it;)

But anonymous comments sucks. Anonymous comments is for cowards.. and drupal is not made for or by cowards.

Hah!

morphir.com

But anonymous comments

funana - January 27, 2007 - 15:02

But anonymous comments sucks. Anonymous comments is for cowards.. and drupal is not made for or by cowards.

Is this sarcastic or do you really mean that?

Ridiculous! Just KISS and opend your mind. The net is not for nerds only anymore.

__

SEO Tips For Successful Drupal Sites
__
Cape Verde News & Community
My Info Collection

Aha

funana - January 27, 2007 - 14:53

Christoph, that is just like "a good forum is not neccessary for drupal core" and I really really hope that they will change their minds!
Drupal is the best CMS of the universe but these kind of oldschool dogmas will not be good for the future development of Drupal.

Anonymous commenting is supported right now, so why shouldnt be Comment Follow Up?

I use the module now on three of my pages and it's very powerful. It reminds anon users of the page, it helps to track conversations without a CoCo Integration and I can see in my logs that the commenters come back to visit the entry and sometimes write another comment.

It's easy to set up and configure, it's a one click issue to unsubscribe to the mails, it's great!

__

SEO Tips For Successful Drupal Sites
__
Cape Verde News & Community
My Info Collection

Totally

filip_tc - January 28, 2007 - 07:07

Christoph, that is just like "a good forum is not neccessary for drupal core" and I really really hope that they will change their minds!
Drupal is the best CMS of the universe but these kind of oldschool dogmas will not be good for the future development of Drupal.

Anonymous commenting is supported right now, so why shouldnt be Comment Follow Up?

I just couldn't agree more.

Don't get me wrong

morphir - January 29, 2007 - 14:36

Anonymous comments are after my opinion no good(I agree with slashdots philosophy there). But I think it's great there is a solution for anonymous commenting for all of you drupallers out there that feel the need of this feature.

Dogmatic? Oh, don't go there my friend. Again, drupal modules gives you flexibility. And if you don't bother checking the modules repos - then your on your own.

There a A LOT of great contributed modules, but that does not mean they will get into core. However you are free to pick up the bat and apply a patch:)

morphir.com

Thx

funana - January 31, 2007 - 14:06

Thank you for puttin things right. As I said before. Drupal is the best CMS of the universe.

I will use this module in every installation and it's no problem for me. But I think a Comment Follow Up function is something very very essential.

I don't mean the "allow anonymous users" option, I mean generally.

__

SEO Tips For Successful Drupal Sites
__
Cape Verde News & Community
My Info Collection

Reliably double the contribution than without notification

Christoph C. Cemper - February 3, 2007 - 15:02

Folks, not sure if you know that I'm currently writing my master's thesis on

How to motivate online community members for contribution (see update as well )

One of the recent studies I read from the IBM Labes (David R. Millen/John F. Patterson) seriously and scientific confirmed what
we guys have in our guts

email notificaton almost DOUBLES the average number of sessions per day for POSTERS *and* LURKERS on days where an email alert is sent out

and those guys only refered to "generic" email notifications... how much higher do you think will the "return" rate to the site be if you send out those notifications ???

On that "coward"-comment, that's just bizarre... the last thing people do is register a user on every site they come across.. I mean, I really always wonder how people dreaming of having every user sign up on their site work with the web themselves ... if they do at all..

anyway... thanks for all your positive feedback!

cheers,christoph

We Drupal 5 Users Really Want this Module!

Lloyd Standish - February 14, 2007 - 22:24

I think subscriptions for anonymous comments is extremely important just for the reasons you gave: people DON'T want to sign up for an "account" on every website. People DO come back when there is a notice of followup material. I don't see how some people don't seem to understand that.

I recently started migration to Drupal, and my test site is not finished yet. I am anxiously awaiting this module. Can you give some idea when the version 5 will be ready?

Could you use some financial motivation?

Donations for Drupal 5 development of this module

Lloyd Standish - February 24, 2007 - 17:48

In my last post, what I meant was this:

Would it help motivate you to work on the Drupal 5 version if I offered you a donation? I'd put up USD $50. Others who are interested in providing financial support for a Drupal 5 version of this module, post here!

another donnation for drupal 5 development of "comment notify"

spudart - March 5, 2007 - 04:57

I would gladly pay $25 to have this module made for Drupal 5.

folks, thanks for the offers

Christoph C. Cemper - March 5, 2007 - 16:03

folks, thanks for the offers

I'm working on the DP5 version, already had some help...
regarding funds an incentive is nice, but I'd rather opt to put that money into some charity thing

any suggestions?

why not put it into drupal

reggie75 - April 24, 2007 - 14:12

why not put it into drupal itself?

http://association.drupal.org/donate

nice module, btw!

This is a great Idea because

hitboy - April 28, 2007 - 16:20

This is a great Idea because it gives the guests more of an incentive to come back and visit again. Thanks

www.hutsy.com - Search Engine, Web Directory & Online Community
www.asiankraze.com - the online asian community
www.moneymakerfuel.com - money making portal, forums
www.dexurl.com - www.justyourpet.com - www.realcasinotips.com - www.seopagerank10.com

Hi Christoph, how is it

slavikt - June 4, 2007 - 13:03

Hi Christoph,

how is it going with the DP5 version? Do you need help with it?

What is the status of this

kalashari - May 21, 2007 - 16:14

What is the status of this project? I would love to have it for Drupal 5

mainly posting so I can

MikeyGYSE - June 2, 2007 - 23:57

mainly posting so I can track the topic and also to enquire on progress for Drupal 5.1's Comment_Notify module :-)

-----------------------------------------------------------------
Michael O'Toole

Gay Youth :: South East - Chair & Operations Administrator

Yes, WHEN WHEN WHEN on v5?

shifthappens - June 5, 2007 - 05:45

this module sounds great.....would love to see it for v5

 
 

Drupal is a registered trademark of Dries Buytaert.