So, you might have noticed that Kaniaz and I have been doing some minor updates to the Chatspot website. I’m gonna use this post to explain what these enhancements will be. I’ll then explain the module system.
The most noticable thing, which some of you may have already noticed, is the fact that the site is now integrated with our forum and that there is now a site-wide . It notifies you of your Private Messages from the main site now also, provides a link to the RSS, and some of the forum pages that were linked from the black bar on the forum - which is now gone. We plan to add some other nice bits and peices to this - and if you have any suggestions, post them in Development on the forum.
Some subtle changes have also been made to the forum template. You might have noticed the user column on posts has been shrunk a little and we have shiny new rank images
. and yes, Kaniaz is working on making the two other templates for the website and thinking of a way to make default subSilver make a bit more like the site design - because let’s face it, it’s not very pretty.
On another note, I’m thinking of making my Trac installation public - that is, our development server - so you can all download copies of the “cutting edge” versions of Chatspot. However, at this point I think it more likely that beta versions will be released to our “veterans” by invite from Kaniaz and I rather than releasing possibly unstable and dangerous code into the wild - yes, we learnt from our Chatspot 2 mistake. Stay tuned for more information on that - but I am not entirely sure I want to do this so don’t hold your breath (and if you do, I’m not liable for death, you have been warned!)
Moving on to modules! Kaniaz mentioned he’d be looking at it, but it’s my turn to post, so I’m going to instead. I’m going to start with a diagram - of Kaniaz’s, ironically - of the Chatspot 3 architecture, taken from our Trac.
So you might be asking - what does all this mean? Controller is the main central point for all of Chatspot’s communication between systems. The first thing that is loaded in is the Modules class. This loads in all the modules - which each have corresponding XML files. The XML tells it what action the module wants to hook into - for example, the post action. When the controller receives an action parameter, it asks the modules class if anything has hooked onto this action. If it has, it then passes control to the module, which will handle the action.
There is then a Database class which is an abstraction layer between phpBB and Chatspot - this automatically cleans up input too, so addslashes htmlentities stripslashes isnt ALL OVER the codebase. There are two helper classes on top of this - User, which handles session data and provides an abstraction between phpBB, and Room, which handles room session data such as permanent, room owner, room permissions (room permissions will be far more complex, too.)
The javascript provides a host of effects and, of course, handles XMLHTTPRequest - which you might know as Ajax. It has support for a growl-like popup which we call “Toast.” Essentially, you can use this for anything you like when writing a module.
Chatspot 3 will be great like this, in our opinion - module coders will be able to do anything without editing the codebase - and end users will be able to have FULL control over Chatspot’s workings (excluding required modules - post, build, poll.) There will be more complex room permissions, moderator permissions, just as people have asked for, so that for example moderator vs admin kicks can be controlled if the Site Admin wishes it to be so (this was requested a few times.)
So, of course, a version of Chatspot you’ll all love is on the way.
Keep your eyes out on the forum, because I know you’re all just drooling over my post
See you all later,
Techboy
PS: For the record, info was replaced with devblog because it wasn’t visited very often at all according to the site stats.