22 January 2006 @ 09:04 am
Today's code...
  • WEB: Convert options page to template system.

  • WEB: Merge functionality of the whoson-lite page into whoson and use template to show slim display.
22 January 2006 @ 07:45 am
Current todo for release...
  • ADMIN (TODO): Manage config

  • ADMIN (TODO): Ban user/ip address

  • ADMIN (TODO): Manage current bans

  • INSTALLER: Finish installer.
22 January 2006 @ 06:50 am
Tried running this on my home machine under Solaris 10, with not-so great results. I'm not sure if it's a PHP5 issue or a Solaris issue but the proxy that I wrote for server push does not work correctly. You have to log out to see new events... not useful at all.

Also, doing double ORDER BYs doesn't seem to work, either, though that's probably a MySQL issue with my setup (MySQL 5.0.16-max). I will try to work around this, since PostgreSQL doesn't let you do double ORDER BYs, either. In the PHP code for client pull, I've already fixed this (simple call to ksort($events);) but the server push code is a bit more difficult.
12 January 2006 @ 10:08 pm
Today's code...
  • WEB and SERVER: Fixed the Server Push issue with Firefox 1.5 by writing a PHP proxy script. Using this, I never have to set document.domain, so I've removed those calls in the web code and the server. All is good. :)

  • THEME: Committed the gray theme to CVS as well, I'm personally digging this a lot.
11 January 2006 @ 01:24 am
Tonight's code...
  • WEB: Reworked help file to use a template (rather than globbing everything into the overall_header.tpl) and added filter entries to the help system.

  • WEB PLUGIN: Added /wartimers command to the Word War plugin. Currently fixed at a 1 hour timer.

  • WEB PLUGIN: Added /cleanup command to the Misc Commands plugin. Removes junk entries (PMs to self, /help entries, /ping entries, etc.)

  • WEB PLUGIN: Added /canceltimers command to the Misc Commands plugin. Sets all active alarm timers to inactive. (Moderator only.)

  • WEB PLUGIN: Added URLFilter plugin to generate clean links.

  • WEB and WEB PLUGINS: Added a field to events to track whether or not the plugin parsed the event (only for commands, not filters... filters are irrelevant to this). If no plugin parses the command, then it's not a valid command and an error message is raised. This fixes a rather annoying bug where the text of the offending command was passed directly to chat.

  • WEB: Added code to the header to allow for a navigation bar to be used in the template through tweaking the overall_header.tpl file. Demonstrated this with the testing template:

Some of these were already done, but as SOMEONE has been complaining about me announcing things, I'm mentioning them here and now.
10 January 2006 @ 06:21 am
Tonight's code...
  • SERVER: Added client pull timeouts and idle outs (ignored for moderators).

  • SERVER: Added time based alarms (low-hanging fruit while working on client pull timeouts).

  • SERVER: Shutdowns now add event into database (for CP/SC users).

Reviewed and updated the roadmap again. Not going to aim for PostgreSQL out of the gate; I don't have the time to find and work around all of the MySQL specific code I've been using (UNIX_TIMESTAMP(), LIMIT, GROUP BY, multiple ORDER BY statements, etc.). That can come later.

This basically leaves 3 things left on my plate before I can comfortably release this to the public. Mainly the installer, the admin panel, and the conversion to phpBB-style templates. Along with the last piece, I want to go through and do a general cleanup of the code... basically look for various debugging print() statements, and kill them. Use addToLog rather than syslog. Add calls to showFatalError as appropriate. Add comments as appropriate.

It's been a long time coming, but this is really starting to shape up. The server code still needs work, as I haven't been able to track down that crash that occurs randomly when a user logs out. But all in all, this is starting to be quite a good framework.

I do want to OOPify some things later in the web code-- notably what I intend to call the FAL (Forum Abstraction Layer)-- but that's not a major deal. Once everything is using templates, it won't matter how I change the back-end code as long as I'm still filling out the templates the same.
Current Mood: tiredtired
09 January 2006 @ 04:37 pm
Today's code...
  • WEB: Converted topic page to template system.

  • WEB: Merged functionality of the main and main_slim pages via conversion to template system.

  • WEB: Merged functionality of the events and events_slim pages via conversion to template system.

  • WEB (BUG): If command is not found, the plugin code will not trap this and the text is blindly passed to the room without note of who entered it, etc..
08 January 2006 @ 09:39 am
Today's code...
  • WEB: Working on converting the code to use phpBB style templates. So far I've got the help, index, contents, transcripts, client pull event, avatar, submit, and Who's On pages converted.

  • WEB: Added error function (showFatalError(msg)) which will be wrapped within the template system.

  • WEB (TODO): Convert options, main, and topic pages to template system.

  • WEB (TODO): Merge functionality of the whoson-lite page into whoson and use template to show slim display.

  • WEB (TODO): Merge functionality of the slim pages into main code with different template files?

  • WEB: User-specified CSS works in Client Pull now.

  • WEB: Client pull events page will reset the pull_timer field in the sessions table to 0 when it checks for events. This will allow for the chat server to eventually track people who have wandered off and closed their browser window without logging out properly and time them out.

Also cleaned up and updated the roadmap post.

Including template files and code, the web code comes to 9000+ lines of code. The server code brings that to just shy of 14000 lines.
04 January 2006 @ 01:01 am
Today's code...
  • SERVER: Added support to the code to use database prefixes. This will allow users of one database to run multiple chat systems with different prefixes.

  • WEB: Check user/IP bans on login

  • WEB: Added logging table, will eventually convert all syslog calls to addToLog...

  • SERVER: Added autoconf support (did this a bit ago, but noting it now...)

  • WEB PLUGIN: /userban command

  • WEB PLUGIN: /ipban command

Upon further testing with PostgreSQL, I found most of my trouble was a result of differences with the GROUP BY clause. I've reworked the code to bypass this in the few cases I used it, and it works with SlimChat. Do need to test the server with Server Push.
31 December 2005 @ 07:17 am
More progress...
  • WEB: Moved report code to a plugin.

  • WEB PLUGIN: Implemented ignore, unignore, and listignore commands as a plugin. (I'm bad, I know.)

  • WEB: Implemented support in Client Pull and SlimChat for ignoring. (Yes, it's possible to ignore yourself.) The Client Pull code isn't tested, but I'm pretty sure it'll work given the similarity between events.php and events_slim.php.

  • WEB: Fixed global events (chat server starting, /wall messages, etc) in Client Pull.