Comment Subscribe

Comment Subscribe is a plugin for Movable Type which provides similar functionality to the 'Notify me of followup comments via e-mail' feature on Wordpress. If a user checks a box when posting a comment, they will recieve emails every time someone else posts a comment on the same entry. Each email will include a link which the user can use to unsubscribe.

Another plugin, MT-Notifier, already provides a superset of this behaviour, but you have to pay for it and it doesn't, at time of writing, work on Movable Type 4; this plugin is MT4-only.

What's New
1.02: A number of requested fixes made. Unsubscribe link will now show up correctly, emails will be sent from the correct place, and notifications won't be sent of unapproved comments until they're approved. Upgrading to 1.02 is highly recommended.
1.01: A number of enhancements made by


Download
You can download a copy of version 1.02 here.

Installation
Unzip the file, and place the CommentSubscribe directory in your plugins directory. If possible, change the permissions on CommentSubscribe/commentsubscribe.cgi to execute for all users, read and write for owner (755). If you don't do this, the plugin will still work, but users will not be able to unsubscribe. Go to your control panel; it will prompt you to upgrade your database. Let it do this; it's just creating a table to accomodate subscriptions.

Now, add the following to your Comment Form template (in the 'Template Modules' section):
<div id="comment-form-subscribe">
<label for="comment-subscribe"><input type="checkbox" id="comment-subscribe" name="subscribe" checked />
Receive email notification of further comments.</label>
</div>

You can put it where you like; I put it just above the text area where the user enters their comments.

Behaviour
If a user subscribes to comments on a given entry, they will be notified every time there's a new comment for that entry. At any time, they'll be able to click on a link in the email they're sent to cancel their subscription. A user won't get notified when they themselves make a comment. Obviously, only users who supply an email address (whether commenting anonymously or through one of the login systems which provides an email address) will get notifications.

If you have any trouble, comments or suggestions, or even if you just like the plugin, please do comment. I plan to add more features soon, so would like to see what people would like made available.

8 TrackBacks

Listed below are links to blogs that reference this entry: Comment Subscribe.

TrackBack URL for this entry: http://myblog.rsynnott.com/new-mt-tb.cgi/1744

» Movable Type Comments Subscription from Robert Synnott

One of the features I miss a bit from Wordpress is the one which allows a commenter to subscribe to receive emails about future comments on the same article. The 'Notify me of future comments on this article' checkbox. So... Read More

I mentioned in one of my earlier posts some of the plugins and functions that a migration from Wordpress to MovableType would involve emulating. One of the functions that I've always considered important was the ability to allow people... Read More

Одна из самых востребованных функций любой блогинг-платформы — подписка на комментарии. Для Movable Type 3–й версии создан хороший плагин — MT-Notifier, который позволяет подписываться не только на комментарии, но и на весь блог, а та... Read More

» Comment Subscribe updated from Robert Synnott

My Movable Type plugin, Comment Subscribe, has been slightly updated, thanks to Arvind Satyanarayan, who made a number of changes and sent them to me.Also, it's currently the featured plugin on Movable Type's plugin directory, which is sort of cool. :)... Read More

» weblog sitrep from walls of the city

So here's how it is. My weblog just updated from Movable Type 3.5 to Movable Type 4.0. If you check out the webpage, you will understand that the new version of Movable Type is... well... very new, and very different... Read More

» Comment Subscribe 1.02 from Robert Synnott

I've just released a new version of Comment Subscribe (my user comment notification plugin for Movable Type). It fixes most of the issues reported with the first two, so please do upgrade if you're using an older one.You can get... Read More

» Comment Subscribe Plugin Updated from Movable Type 4

Robert Synott has released an updated version of his comment subscribe plugin which rectifies a number of issues in the previous version(s).He strongly recommends that users upgrade - I just did and it's a lot saner !Great work Rob!... Read More

» Programmer smugness from Robert Synnott

I have to admit, I experience a little moment of smugness every time I visit a Movable Type blog which is using my little email comment subscription plugin. Yes, the one which is in serious need of updating; I really... Read More

25 Comments

Byrne Author Profile Page said:

Wow, this is an awesome plugin. Don't forget to submit it to the Plugin Directory!

Anonymous said:

I've had no luck with the plugin directory, I'm afraid; it doesn't seem willing to let me register.

Rob

I installed it and seems to be working .. Now to see if anyone subscribes :)

If you're the one posting as "anonymous" by the way, there were issues with the plugin directory earlier today. They may have been resolved, but if not you can probably get someone to sort you out on the IRC channel - it worked for me :)

Michele

Hi Rob, drop me a line at arvind.2111 [at] gmail [dot] com and we'll try to work through the issues you're facing with the plugins directory. We were having some problems with the verification emails being sent out so that may be it!

Chad Everett said:

Hi Rob -

Nicely done. Unfortunately I haven't had time to update MT-Notifier, though it will be coming when I get the time to do it. For those who don't know, MT-Notifier actually started life as a "subscribe to comments" plugin.

In any case, I'd also suggest a couple of things.

1 - When sending notifications, add a check to make sure you're not notifying if the comment is junk. This would be in your post_save callback, add something like "if ($obj->is_not_junk)" to the conditions (this worked in MT3, not sure if it does in MT4). Otherwise you're notifying when you receive junk comments, and subscribers may not be happy.

2 - Try and get rid of the CGI if possible. This previously wasn't doable, and Byrne logged a bug ID a while back to overcome some limitations (specifically that would not allow you to add modes that did not require passwords), so it may not be possible. But if you can do it in MT4, that will make it easier to install.

Otherwise, nice!

Crt said:

For some reason, the checkbox doesn't show up. The text "Receive email ..." does.

Also, the checkbox and the text for "Remember personal info?" shows up with no problem.

If you have any suggestion, that'd be appreciated. Thanks.

Nereus Author Profile Page said:

Sweet, about to try it out, thanks very much. If the functionality is not already there, an interface for viewing/editing existing subscriptions within MT would be great.

Nereus Author Profile Page said:

Ok sweet it works, but the email that is being sent out to subscribers gives an incomplete unsubscribe URL.. this is what was provided:

If you no longer wish to receive notifications, please click here:
/cgi-bin/mt/plugins/CommentSubscribe/commentsubscribe.cgi?action=unsub&id=1

(there was no domain URL in front..)

Byrne Author Profile Page said:

What happens is an email is not on record for the user? Should this plugin somehow modify the javascript to force the email field to be visible?

OpenID logins for example do not have an email address associated with them. :-(

Rob

I installed the new version, but the backend still shows version 1.0
Do I need to do something or is that an issue on your end?

Michele

Robert Synnott Author Profile Page said:

Yep, I just noticed that the unsubscribe link is broken (in this version; it worked in 1). I'll release a fix for this and other little issues tomorrow.

Toni Author Profile Page said:

I couldn't get past the upgrade now screen, received the following error

Can't locate object method "datasource" via package "CommentSubscribe::CommentSubscriptions" at lib/MT/Upgrade.pm line 1172.

I have MT 4.0 installed.

A new version of Comment Subscribe which fixes most reported issues is now available.

null said:

Don't know if this is an issue or lack of feature but if you reply back to a comment on MT4 control panel the email does not get trigger for people who subscribed to receive further comments.

Norm Author Profile Page said:

I've run into a problem when I tested the unsubscribe feature it sent it to the wrong location. /1gm/plugins/... instead of the correct location /movabletype/plugins.


Any suggestions.

Norm Author Profile Page said:

I'm still having the same problem, and it also seems to interfere somehow with registered users while signed in getting the following message:

------------------------------------------------------
Comment Submission Error

Your comment submission failed for the following
reasons:

Text entered was wrong. Try again.

Return to the original entry.
------------------------------------------------------


Norm Author Profile Page said:

The comment submission error is unrelated but the unsubscribe feature is still providin the wrong url.

Rob Author Profile Page said:

I wanted to see if I did something wrong during installation.

I am receiving the notification emails, but check out how it formatted the text:


From: The Dude

Test again

Thanks for the help!

Rob Author Profile Page said:

Please disregard the above... it was due to the old EnhancedEntry plugin I had on the older MT 3.33 installation I upgraded from. After manually removing it, the text was formatted correctly.

LP said:

this doesn't work for me.

I got the install prompt in the cPanel.

Added the text to the comment_form.m

Nothing. No text, no checkboxes.

?

Robert Synnott Author Profile Page said:

Did you remember to rebuild after you'd made the template changes?

LP said:

I found what I was doing wrong. Thanks for your help!

Dave Baker said:

The "If you no longer wish to receive notifications, please click here:" link in the the email that goes to the subscriber was not working for me in 1.02.

I think there's a bug.

my $base = blog->site_url;#$app->config('CGIPath');

needs to be changed to read

my $base = blog->site_url . $app->config('CGIPath');

in order for the link to work correctly on my installation. It looks like the ";#" might have been a typographical mistake; later in the code appear the lines

# Fixed this to use CGIPath (as defined in mt-config.cgi) because in many cases blog_url != cgipath

unsub_link => $base . 'plugins/CommentSubscribe/commentsubscribe.cgi?action=unsub&id='.$addy->id

that seem to indicate $base was intended to be changed to read as shown above, with the concatenation operation ( . ).

This is a marvelous plug-in; thank you very much!

I am finding that the whole registration process used by default in MT 4.01 is just unacceptable for my users, who are members of the general public, many of whom are using blogs/MT for the first time and who undoubtedly will forget passwords from time to time.

The whole "password hint" jazz is so poorly thought through that I can't see enabling registration until the system is fixed.

The whole point of a "hint" is to let people enter a hint that they can get displayed by entering their username (or, better, their password) when they've forgotten their password, to help them remember what their password is ("the name of my first dog was:"). MT 4.01 doesn't use the concept of a hint but instead in effect is asking for an alternative password. But that so-called "hint" is just as likely to be forgotten as the password.

To "recover" a password (again, mis-named; it's the assignment of a new password, not the recovery of the existing password), MT asks the poor user to remember and ENTER the "hint" in order to get a new password assigned via email.

Ridiculous. That's not a "hint."

So I have disabled registration altogether until I can get under the hood and change that part of MT.

It seems to have been that way for a while:

http://www.sixapart.com/movabletype/docs/3.2/02_getting_started/recovering_a_forgotten_password.html

which makes it all the more incredible to me.

See also

http://forums.sixapart.com/index.php?showtopic=56773&hl=password+recovery

In fact, the idea of having a user enter his or her own "hint," even if the hint were shown to the user when going through the "lost my password" process, is dumb. Instead, if the idea is to provide some level of security over and above merely entering an email address in order to recover the password, then the user should have a set of drop-down pre-written hint questions to choose from when registering ("My mother's maiden name is," "My first pet's name was", etc.) and then MT should record the question chosen and the answer to that question. Later, when the user tries to recover his password, the user is shown the question that was chosen and is asked to enter its answer. If the answer matches, then the password on file is sent to the email address the user also enters.

By using this marvelous plug-in, I can give people the ability to be notified of subsequent comments without needing to be registered users (if he or she supplies an email address when posting the comment).

Chad Everett Author Profile Page said:

> unsub_link => $base . 'plugins/CommentSubscribe/commentsubscribe.cgi?action=unsub&id='.$addy->id

Actually, I would go so far as to say that even that may not be the best idea. Part of it depends on how you are calculating $base, of course, but then you are forcing people to put the plugin in "CommentSubscribe", and sometimes people don't.

Instead, you would be better off using the plugin envelope, which would make the line instead look something like this:

unsub_link => $base . $plugin->envelope . 'commentsubscribe.cgi?action=unsub&id='.$addy->id;

That way, wherever the plugin is, it will just work. You need to define $plugin, but you may have done that already.

Jerame Davis Author Profile Page said:

I was having trouble with the unsubscribe link in 1.02. It was not giving the correct path. I changed this line:
my $base = $blog->site_url;#$app->config('CGIPath');

to:
my $base = $blog->site_url . $app->config('CGIPath');

and other than a double slash (//) after my site URL, it at least puts in the correct path to the unsubscribe link. I'm sure there's a better way, but this needs to be fixed correctly ASAP, especially since the docs say that it should be working correctly now with 1.02 anyway.