webmaster
Moderator
Joined: 2006-12-17
Posts: 45
|
Two very long months. But it is finally done. MyProBB 2.3 is released! This release is huge, so brace yourself for an insane post.
First up is the biggest change: The brand new Management Interface (manage.php). This new interface isn't a visual interface. Basically, it offloads the stuff that happens daily in the forum to a separate script. This script manages everything that is time-consuming and would slow down the user experience. The old cleanup.php script and portions of init.php are fully integrated into this brand new interface. This interface is designed to be hooked up to a 'cron' type tool (either command-line OR web-based) so that it runs periodically (preferably every 5-15 minutes). This interface also fully supports all sorts of plugins. Keep reading - you definitely don't want to miss the very cool plugins that tie into this interface.
Part of the new Management Interface includes the ability to send out e-mails containing the log during the daily cycle. The log can be sent to multiple e-mail addresses. After the log has been sent, log entries are deleted depending on how old they are (configurable).
Also part of the Management Interface is the new ability to send e-mail notifications. Users can subscribe to forums and topics they are interested in and receive e-mail notifications of those topics. These features are configurable through the administration panel. E-mail notification of topics the user is interested in is turned on by default but forum level notifications is turned off. The Management Interface manages the process of sending out e-mails.
One minor, indirectly related feature, is the ability to track attempted account creation using restricted domains. MyProBB comes with a list of freebie e-mail domains grouped by popularity. An administrator can block registrations from entire domains but, until now, there has been no way to determine how many registrations fail due to domain blocking. This is the perfect companion to the new daily log e-mail.
That is the core of the Management Interface. However, writing it only took me a little over a week. What was I doing during the remainder of the two months? Writing three plugins.
Writing plugins for MyProBB can be difficult to do. Most users want to get up and running quickly. However, many systems already exist that are not likely directly compatible with MyProBB. So what I've decided to do is to create a new plugin type called Partial plugins. The original types of Official and Unofficial are still in effect. This new type allows me to author plugins that are intentionally incomplete. For partial plugins, the site owner fills in the blanks of a well-commented plugin.
The new partial plugin Automatic Login is an example of this new type of plugin. Automatic Login provides the skeleton with heavy comments of how to integrate an existing PHP-based login system. Basically, it allows the site owner to avoid having to wander around the MyProBB internals to figure out how to integrate their login system and how to write plugins in general. It takes maybe 15 minutes to fully integrate an existing login system using this partial plugin. One less headache to deal with when management decides to use MyProBB for a web forum!
The Automatic Login partial plugin took a little over a day to create.
Up next is the POP3 plugin. This plugin is entirely Management Interface-oriented. It modifies the notification e-mail that goes out to users who are signed up for e-mail notifications and checks a POP3 mailbox for incoming e-mail. This plugin allows users to reply to the forum directly using their favorite e-mail client.
The hardest part of making this wonderful little plugin was that I had to go write a POP3 client in PHP and then I had to parse MIME data. And convert responses to Unicode. Ugh. MIME was a nightmare to get right, but given this was my fourth iteration of writing a MIME parser (don't ask), I pretty much knew what to do and I'm pretty sure I got it right this time (I did not like my previous attempts for various reasons).
The POP3 plugin took about one-and-a-half weeks.
So, where is the other one-and-a-half months? I've kept you waiting, but get ready for perhaps the best little gem to hit the Internet since AJAX-driven websites, er, Google...
The Official Instant Message plugin. Yup. That's right. I single-handedly hold the distinction of having the first web software package that sends Instant Messages. I hold the distinction of being the first to send IMs to five major IM networks from a web forum. I also hold the distinction of having the only web forum software package that sends real Instant Messages. I even hold the distinctions of having the most advanced Pidgin plugin using the Perl plugin for Pidgin, the first Perl plugin for Pidgin that contacts the Internet, and the first ever multi-protocol automated IM web-driven bot.
That's a lot of firsts. I've done something no one else on this planet has done. It took a lot of sweat, tears, and one-and-a-half months to get here, but I did it.
Despite making the plugin as simple as possible, the plugin itself has over five pages of documentation. However, while it does take a bit to set up, it really does send IMs. To five different networks: AOL IM (AIM), MSN Messenger, Yahoo Messenger, ICQ, and Jabber/XMPP.
There are three parts to the plugin: The 'User Profile' part (what the user sees), the Management Interface part (handles requests), and the Pidgin part.
The first two parts are straight-forward (more or less), the Pidgin part is not so straight-forward. Pidgin is a multi-protocol IM chat client that has Perl scripting support for writing plugins (it also supposedly supports Tcl plugins, which I don't know). I looked at the documentation and knew it would take a while but a Perl plugin for Pidgin was the best route. A Perl plugin for Pidgin would allow users to use the plugin with Pidgin on any Pidgin supported OS (which is all the major OSes).
My first step was to get Pidgin installed with the Perl plugin. That took several days. (The instructions cut through the awful steps I went through). Then I had to re-learn Perl. For the zillionth time. I hate Perl. Once I figured that out, I had to download the source code to Pidgin and learn how that worked. I was digging around in the C code far more than I cared to just to figure out what in the world was going on. I ran into so many ridiculous bugs (fully documented in the plugin source), I ended up writing all sorts of cheesy hacks to get the darn thing to not do weird things. Then I had to wait for Pidgin 2.4.2 to be released because they were making changes to the Perl part of the plugin, which resulted in more hacks. Then I had to figure out how to communicate between the Perl and PHP parts of the plugin over the Internet in a bandwidth-friendly fashion. And then I ran into rate limit and size limit issues of sending messages over IM. By the time I figured everything out, a whole month-and-a-half had passed.
Sorry for the rant. But hopefully that thoroughly explains the reason for the delayed release. Instant Message support for a web forum: A very cool feature. And it totally abuses someone else's software application (Pidgin).
That's it! MyProBB just keeps on getting better and better. If you aren't using it, you should. Using MyProBB helps stroke my already big ego and stops forum spam (you likely only care about the latter).
|