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

Comments

sja1’s picture

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

Christoph C. Cemper’s picture

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

Christoph C. Cemper’s picture

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

Christoph C. Cemper’s picture

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

dnorman’s picture

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!

Christoph C. Cemper’s picture

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

ezichko’s picture

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

Christoph C. Cemper’s picture

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

Christoph C. Cemper’s picture

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

Christoph C. Cemper’s picture

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 :)

dnorman’s picture

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...)

Christoph C. Cemper’s picture

>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?

Christoph C. Cemper’s picture

any more test feedback?

likewhoa’s picture

please fix, looking forward to testing your module contribution.

Bending technology to fit business

Christoph C. Cemper’s picture

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

Christoph C. Cemper’s picture

Hi folks,

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

tain’s picture

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

Christoph C. Cemper’s picture

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

drumdance’s picture

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

Christoph C. Cemper’s picture

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 :-)

DaveNotik’s picture

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

Christoph C. Cemper’s picture

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

harriska2’s picture

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!

Christoph C. Cemper’s picture

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

adrian.k’s picture

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.

adrian.k@drupal.org’s picture

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.

ezichko’s picture

harriska2’s picture

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.

filiptc’s picture

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

Christoph C. Cemper’s picture

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

Christoph C. Cemper’s picture

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...

Rosamunda’s picture

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

Christoph C. Cemper’s picture

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

Rosamunda’s picture

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

Rosamunda

filiptc’s picture

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

Christoph C. Cemper’s picture

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

Lloyd Standish’s picture

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!

funana’s picture

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

Christoph C. Cemper’s picture

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 :-(

morphir’s picture

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

funana’s picture

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.

funana’s picture

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!

filiptc’s picture

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.

morphir’s picture

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

funana’s picture

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.

Christoph C. Cemper’s picture

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

Lloyd Standish’s picture

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?

Lloyd Standish’s picture

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!

spudart’s picture

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

Christoph C. Cemper’s picture

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?

reggie75’s picture

why not put it into drupal itself?

http://association.drupal.org/donate

nice module, btw!

Hara Kim’s picture

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

slavikt’s picture

Hi Christoph,

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

kalashari’s picture

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

MikeyGYSE’s picture

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

bgilday’s picture

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

Brian Gilday
Municode
www.municode.com