Monday, January 4, 2010

2.0 Beta2 is out

This is kind of a culmination of a few years of idle work. I've been working on a form class for a few years (very occasionally), and it's finally included. New work and kind a departure from past releases is some more Javascript. JS is all JQuery and not strictly required, but will be pretty awful and confusing with JS disabled.

This should be the final DB format for the 2.0 release. The event format is final. It similar to the version that has been in the trunk for a couple of years, but a little different. Previous versions used an event type column in the event table to mark repeating events as daily/weekly/etc. The version on the trunk expanded on that idea. It had a table for occurrences for each event and occurrences had columns to specify when they started, stopped, how frequently they occurred, etc. It was really complicated. The current (and final) version creates an occurrence for each occurrence (wow, how novel), so if an event is scheduled to happen 50 times, there are 50 rows in the occurrence table for it. This allows specific occurrences to be removed easily, makes for a very simple DB format, and removes some conceptual problems I was having with the previous format.

So take it for a spin, but don't expect all of features to work. There are a few pretty major omissions yet. Read-only events are basically supported, but the UI isn't there yet to create them. Multiple occurrences aren't shown in the event display yet. If you have suggestions for what that should look like, leave a comment. The admin panel probably hasn't seen any improvements since Beta1, but it's been a long time since then and if I made any changes, I don't remember them. Someone posted a comment on a bug saying that they couldn't use the calendar because their host didn't have PDO. I didn't really have a good reason for using PDO. I thought if in the future I wanted to support some other DB, it might make things easier. I don't know if that will necessarily be the case, so there's no sense leaving potential users out over some possible eventuality. For this release we're on to MySQLi. This may support a different subset of users. If anyone had PDO, but not MySQLi, I'm sorry. The PHP docs recommend MySQLi, so that's what I'm going with. Luckily, my server doesn't have mysqlnd, so I got to catch a couple of problems with MySQLi straight away.

No comments:

Post a Comment