Archive for the ‘Tech/Web’ Category.

New version is up!

Ah! After some much needed tweaking a newer version of the CMS is up, and daveho.com is back online. While there doesn’t seem like many changes (in fact no UI changes have occurred at all), I have done a bunch of backend stuff:

  • The page classes have been tightened up.
  • While not a true OO system (since my host is only on PHP 4.x), there is a more object-oriented feel. Configuration settings are now kept in objects rather than arrays.
  • I now only open one DB connection and pass it (properly) by reference amongst objects.
  • Fixed some date formatting and comparison functions.
  • Added a few new helper functions for formatting, and I have a nifty function to simulate a .NET Command object ExecuteScalar (like a “mysql_scalar()” function – handy for popping out single values from the database).
  • Finally fixed the job runner and the RSS feed cutter
  • Added static files class for file-handling
  • Reworked the folder structure and some naming conventions. Unfortunately has the side effect of messing a bunch of pages up, but is a better configuration in my opinion.
  • Added some more content options. Also added a “short name” feature which can replace the cryptic id parameters in the querystring of content items with a name value (so if a page is titled “My Trip”, I can reference it with page=my_trip and get the page). Should help with sending links and bookmarking.
  • Built a caching system. Now I can cut the guts of a page and store it in the filesystem, rather than calling the DB for the contents. I do a check, and if there’s a cache file, I include it. If not, I run the regular routine and then cut a file. It can handle pages that are blocked by role as well.

So that’s a bunch of work right there. But now I have a new list of things I need to get done to finish off this release:

  • Fix the niggly bugs that are probably definitely going to show up.
  • Trying to figure out a good cross-platform way of determining the root physical file path so I can set it dynamically. I gave up this round and just hard-coded it, but this CMS can’t be too flexible if I have to have too many hardcoded bits.
  • Need a cache manager script that I can run on my passive job timer (like my RSS cutter)
  • Add a global short names option (so I can use short names in the navigation)
  • Add caching for the navigation (it still has a bunch of DB calls – adding a menu cache would really speed up pages).
  • Currently working on a Flash interface. Building complimentary PHP and AS class implementations so I can exchange data between the CMS and a Flash front end.

Lots o’ stuff. And there’s always lots to do…

ADDED: Fixed some little things, like date comparisons that weren’t working, and a problem with my blog XML having formatting problems (that was the problem Squig). Also got my menus caching too! Schweet!