MovableType plugin hack
I'm still recovering from a cold as I write this.. ugh. Oh, and fair warning: This is a MT geekoid post, but I figured it would be useful to some out there.
Before I moved this blog from my previous domain I had a lot of problems with comment and trackback spam.
The comment spam was easy to fix. You rename the mt-comments.cgi to something else, like mt-comments_XrT.cgi or whatever, then modify your mt.cfg to reflect the newly named file. In the mt.cfg there's a line that states:
#CommentScript mt-comments.cgi
Once you rename mt-comments.cgi to something else, remove the # and change to:
CommentScript mt-comments_XrT.cgi
..or whatever you named it to. Save the file, logout/login to MT, rebuild the site. Done deal. When the spam comes back, rename it again, modify MT again, rebuild. Not a big deal really.
Even though I got the comment spam out of there, comments were still enabled for really old entries. I did some scoping around and found MTCloseComments, which works well. It "expires" the ability to post comments after x days old (whatever you specify).
My brain started working on this one.
"I bet I can get this script to stop accepting pings for entries after a certain date also."
I opened up the script and looked at it. I found that it specifically touches the entry_alllow_comments part of mt_entry in the MySQL database and simply changes the value from "1" (open) to "2" (closed) combined with some math to know when to close comments for each entry.
So I hacked it. I made my own version called MTClosePings. Basically, I did the following:
1) Changed any instance of "CloseComments" to "ClosePings".
2) Instead of having the script modify entry_allow_comments, I had it modify entry_allow_pings instead. Just like the original changes entry_allow_comments from "2" to "1", I had this one change entry_allow_pings from "1" to "0".
3) Kept everything else the same, except for renaming the file MTClosePings.pl.
Uploaded it, tested it.
Wah-lah, it worked. I added the code
Download the script if you like. Use it exactly like MTCloseComments, except use code as MTClosePings instead of MTCloseComments (obviously). This is tested with MT v3.16, I don't know if it works with older versions or not.
Big thanks to Alan M. Carroll for writing the original!