Alert (and long-time) MT-Notifier user Scott Yoshinaga - yes, from nemu*nemu - mentioned an error that he had been seeing when trying to execute the queue script for MT-Notifier.

The specific error he was getting, I believe with Movable Type 4.38, was:

6/7/12 6:20:49.831 AM defined(%hash) is deprecated at /opt/local/apache2/cgi-bin/mt/extlib/Locale/ line 404.
6/7/12 6:20:49.831 AM (Maybe you should just omit the defined()?)

Unfortunately it is not specific to MT-Notifier (or the queue), but it is a problem that seems to have a fairly simple fix.

If you are attempting to download MT-Notifier and you receive an error message that will not allow you to download the plugin (perhaps transaction not authenticated), the likely cause is an update to the software that handles the payment processing from PayPal. Unfortunately, the software needed to be upgraded due to a change at PayPal. But this broke the way that payments were handled previously.

Luckily, you can still use your prior purchases. You just need to make a small change to the link. Where previously the link included a script named linklokipn.php, change the script name to linklokipn-legacy.php. This also applies if you have a link with "manual" in the url AND receive an error - just change linklokipn-manual.php to linklokipn-legacy.php.

Do not make any other changes - specifically, do not change your authorization code, as that's what will determine what to download. Also, don't make the change if you don't get an error - because this version will only work with earlier licensees, and you will get an error with that version if you are a recent licensee. If that's the case and you changed it, you'll want to remove "legacy" instead!

Finally, don't worry about the filename at the end - even if it is an older version than you expect (say, 4.1.1 instead of 4.2.1), it will be fine. It is the authorization code that does the magic. Just make sure you add the -legacy bit in there and you'll be set.

If this doesn't work for you, let me know by providing your full download link, and I'll update it with your new download link in return.

If you use MT-Notifier to send category subscriptions, then you should be aware that there may be an issue with sending notifications to subscribers based on the way that you create your entries.

Because Movable Type assigns categories only after the entry is completely saved, it means that if you do not save your entry in unpublished (or draft) mode with the categories assigned, your category subscriptions will not be processed.

Luckily, there is a very simply way to get around this problem. Simply assign the appropriate categories to your entry, and then save your entry in unpublished mode. Then change the status to published and save it again. That's all it takes and your notifications should go out as normal.

Request Processing Return Links

Though it is possible to fully customize the templates used by MT-Notifier for either display online or via email, one function where you don't have to do any of that dirty work is if you would like to give your users the option to return to the page that they were just viewing after subscribing.

All you need to do is add two fields to the subscription form, and if they are found in the form when the subscription is processed, the template will automatically provide the return links for you. Though this has been in the template for some time, it has never been documented, and this will tell you just how to do it.

Managing Subscriptions

Unlike prior versions, MT-Notifier version 3 does not have a full-fledged administration interface. It does, however, have two things that were not available in prior versions.

First, it makes full use of itemset actions, introduced with Movable Type version 3.2. Itemsets are simply lists of items - for our purposes, blogs, categories and entries. These itemsets have a drop-down list of actions that can be performed on the items in the list (the edit entry page also has a list of available actions, even though it is a single item, and not a "list" as such). When available, MT-Notifier will add items to this action list so that you may perform common tasks right from the Movable Type interface.

Second, MT-Notifier uses a new storage paradigm (a SQL table structure) that allows you to run queries on the data and manage it just like any other data in the system. This feature wasn't previously available, meaning you were dependent upon MT-Notifier for everything you wanted to do with your data. That is no longer the case. You can do this with any SQL-capable language or tool, or even the very powerful MTSQL plugin for Movable Type, right in a template, without having to use anything other than Movable Type!

More than one MTSQL template has already been posted, and as I find more, I'll add them to this list:

If you know of any other templates out there, let me know so that I can add them to the list.

Another user who goes by the handle of Blumunky has stepped it up a notch with his MT-Notifier Management Plugin, which doesn't require MTSQL at all, but adds a list of MT-Notifier subscribers to the list of Movable Type Notifications. Way to go, Blumunky! This was then updated for Movable Type 3.31 (and 3.32) by littlered. Sweet!

Installation Issues

Verify that the MT-Notifier tables have been created in your database. These tables should be created automatically for you if you are running version 3.4.5 or higher. Prior versions may require manual table creation. If you have not, the appropriate tables will not be created and MT-Notifier won't work correctly.

500 Server Error
If you connect to the script, and you receive a 500 Server Error, it means you have a configuration problem. The simplest to fix is a permissions problem. Make sure you've set your permissions so that the script is executable (usually 755). If that's not it, check your server logs for other potential problems and make sure they're all fixed before continuing.

Also make sure that mt-upgrade.cgi exists and has execute permissions, as this is the script that actually runs the upgrade routine, and in turn it is the one that will install the tables for you (MT 3.31+ only).

Troubleshooting Email

If you are having problems with your email notifications, you can use the Movable Type comment notifications to test your setup. If they don't work, MT-Notifier won't work either.

If you are creating either blog- or category-level subscriptions, and your installation requires confirmations, make sure that you have specified a default email address on the system-level blog settings.

If you haven't, then there is no "sender address" to use on those confirmation emails, and nothing will be sent! You can also verify that this is a problem by checking your activity log for an error.

Missing Slashes in URL
If the URL is missing a slash, specifically between the Movable Type directory and the "plugins" directory, check the CGIPath setting in your configuration file to make sure it has a trailing slash (a slash at the end).

Incorrect Script Name in URL
This final email tip is a bit obscure. If you find that your messages lose a dot (for instance, mt-notifier.cgi turns into mt-notifiercgi), check the version of Mail::SendMail on your server. Version 0.78 has been shown to have this problem. Version 0.79 solves it. (Thanks to Stanford ITSS.)

Troubleshooting Forms

The most common issue with MT-Notifier involves the integration of the subscription checkbox with the comments form. There are two common errors with this process. First, a sample checkbox:

<p><label for="subscribe">Subscribe to This Entry:</label>
<input type="checkbox" name="subscribe" value="1" /></p>

Note the name of the checkbox, and that there is a value. These things are important! If you do not have the name set to subscribe, the subscription form will not be able to find the value you submit, and will not create a subscription.

Somewhat related is the value. If there is no value, MT-Notifier will not see that there is anything to be done during the posting of the comment, and it will not create a subscription.

Another common (and similar) problem is that the name on the form fields are not set correctly on the standalone forms. Here is a form to subscribe users to a blog:

<form method="get" action="<$MTCGIPath$>plugins/Notifier/mt-notifier.cgi">
<input type="hidden" name="blog_id" value="<$MTBlogID$>" />
Subscribe to This Blog<br />
<input name="email" />
<input type="submit" class="button" value="Go" />

If the name of any of the fields is incorrect, then MT-Notifier will not be looking in the right place for the data you are submitting! To subscribe to an entry, you should use entry_id, for a category, category_id and blog, blog_id.

Also make sure that, even if you have spelled the name correctly, you have not included any extra spaces. For instance, a name of "blog_id " (note the space at the end) is not the same as "blog_id". If you get a message about an invalid or missing key, this is where you should check first. Make sure the field names are right!

If the name is right, make sure you use the correct ID. For the entry_id and blog_id, you can use the Movable Type template tags <$MTEntryID$> and <$MTBlogID$>;, but there is no such tag for the category ID. In that case, you'll want to use a template tag supplied by MT-Notifier for just this purpose, <$MTNotifierCatID$>.

Recent Entries

A New Approach to Fighting Spam
Drew asks if MT-Approval has been updated to work with MT5 - specifically version 5.14, but since version 5.2 was…
Adventures with Joomla!
One of my longtime customers, Craig Reid, recently inquired if I could help with an issue his parents were having…
MT-Notifier defined (%hash) is deprecated error?
Alert (and long-time) MT-Notifier user Scott Yoshinaga - yes, from nemu*nemu - mentioned an error that he had been seeing…