LnBlog 0.5.3 - "No Need for Spam"

It's release time again! LnBlog 0.5.3, also known as "No Need for Spam," is now available for download. You can get it from the download page as usual. You may also want to note that I've decided to join the 21st century and am now cryptographically signing the release archives with GnuPG. If you don't know what that means, don't worry about it. If you do know, then you can find my public key here.

This release adds a number of significant features. The biggest features are actually all implemented as standard plugins, meaning you can customize them and/or turn them off. The first of these is a plugin to blacklist IP addresses from submitting comments or trackbacks. This has several features. First, when you are logged in, it displays the IP address from which a comment or trackback was posted along with a link to ban it. If you are logged in as the administrator, there is also a "global ban" link. Basically, the idea is that you can ban apply a ban for just the current blog or globally for all blogs managed by LnBlog. The two files are merged when the plugin loads, so the blocking rules from both will be applied. If an IP address is found in one of those files, any comments or trackbacks it submits will just be discarded. And just as side note, if you want to make your regular account the administrator in order to make global banning more convenient, you can do that by creating a userconfig.cfg file in your LnBlog userdata directory and adding the following line to it:
ADMIN_USER = your_username_here
Note that this will make the administrator account into a regular user. Of course, that probably isn't a problem for most people.

As for the IP ban lists themselves, they are actually a list of regular expressions, one per line. When you click one of the ban links, the actual IP address is added to the appropriate ban file. However, you can edit the file from a sidebar link and actually change those lines to use PREG (Perl-compatible regular expression) syntax. So, for example, if you're getting spammed by the whole range of IP addresses between and, you could block that entire subnet by simply adding 123.45.67.* to the ban file. If you're a real regular expression wizard, you could get really fancy, but this should be sufficient for most people.

The next spam-related feature in this release is another plugin, this time to just turn off comment and/or trackback posting for your whole blog. This plugin has settings that allow you to turn off trackbacks and to turn off comments either for everybody or just for people who are not logged in. This is for those who would rather just not deal with comment or trackback spam at all.

The third semi-spam-related feature is a plugin to notify you by e-mail when a trackback ping is received by an entry. Basically, this is exactly the same as the comment notification plugin, except for trackbacks. This way, you'll actually know when you get trackback spam.

The last spam-related feature is just the ability to handle trackback pings. You can now delete received trackbacks and turning off comments for an entry will also turn off trackbacks. Note that currently, the confirmation for trackback deletion is only in JavaScript, so if you have JavaScript disabled, clicking the delete link will delete the trackback ping immediately. Just an FYI.

One more option on the plugin front, it is now possible to add your own custom links to the articles section of the sidebar. When you log in, you will now see a link for that at the bottom of the articles section. The file format and interface is the same as for modifying the sitemap.

The last big feature is pretty permalinks for entries. Rather than the date and time, the last component of permalinks will now be a sanitized version of the subject line. Of course, the old-style permalinks will still work, even for new entries, so there is no need to convert anything. I've just added some code to create a wrapper PHP script with a nice name whenever an entry is added or modified. The other nice thing about this is that if you change the subject of an entry, the link with the old subject will still work.

That about covers the major changes for this release. I also made the plugin configuration page a little easier to use, added JavaScript confirmation for comment deletion, added a redirect to prevent duplicating comments, and fixed several bugs, such as tags being lost during post previews. Check the change log for details.

As always, leave a comment or e-mail me if you have any problems, questions, or comments. Enjoy!

You can reply to this entry by leaving a comment below. This entry accepts Pingbacks from other blogs. You can follow comments on this entry by subscribing to the RSS feed.

Comments #

    installation trouble

    I tried to install the new release but can't get it to work at all. I uploaded all the files to my host but index.php just gives me a blank white page. I had the same problem with 0.5.2.

    I tried going back to 0.4.0, and it seemed to work okay, but I would really like to use the new features you've put in since then.

    Here's a phpinfo() file that I uploaded

    I'd really like to use this software, any idea what might be wrong?

    Re: installation trouble


    That's very strange. I looked at your configuration, but nothing jumped out at me. I test on essentially stock Apache and PHP configurations, so you shouldn't need any special settings.

    I guess the first I'd try would be to turn your error reporting all the way up. In your php.ini, set error_reporting = E_ALL, display_errors = On, and display_startup_errors = On and see if you get any error messages. (If you don't have root access, you can also set those in a .htaccess file, thoughI forget the exact syntax at the moment). You appear to have error reporting turned off at the moment, so I'm guessing there's some error happening that just isn't being displayed. An error message would at least give me an idea of where the problem might be.

    Re: Re: Installation Trouble

    I tried to override the error_reporting setting with .htaccess and even added
    ini_set('error_reporting', E_ALL);
    to the beginning of index.php, but I still only get a blank page. I'll try it on another server when I get the chance.

    Re: Re: Installation Trouble

    I removed a lot of stray _ characters and got the first page to load. Now it hangs at fs_setup.php


    So is fs_setup.php giving you no output as well? Weird.... I can't think of any reason why you would get no output at all. It smells like a server configuration issue, but I don't know what the problem could be.

    All those underscore _ characters are translation markers for gettext. If you don't have gettext, they fall back to a custom translation mechanism defined in the lib/i18n.php file. They shouldn't be causing any problems, since if there are no translations (which there currently aren't) that function just returns the string passed to it.

    Found the problem!

    OK, I was wrong - it was the underscores!

    Apparently I forgot to turn off gettext support on one of my test systems and ended up using the _() function before it was defined. I posted the fix here:

Add your comments #

A comment body is required. No HTML code allowed. URLs starting with http:// or ftp:// will be automatically converted to hyperlinks.