Wednesday, January 13, 2010

2.0 Beta4

Another week, another beta. There's no much big or interesting in this one. I was hoping Beta3 would be the last Beta. Unfortunately, the were a few fairly obvious bugs in the install/DB code.

If there was ever a problem connecting, I was calling the mysql instead of the mysqli function. No really a huge deal, because if you're having a problem connecting, there's already a more important issue, but it's something that needed to be addressed nonetheless.

The next issue was just a typo that I made while fixing pretty much the same typo. No excuses here. The reason it got though is because I don't have a setup to test that portion of the installer. Why? A little laziness I guess. My host requires me to create databases and users through their web admin panel, so I can't test the portion of the calendar that creates databases and users.

The final issue and main reason for the early beta, some configurations (well, only one that I've heard of, but that's enough) don't respect the default database being set in the mysqli constructor, so I'm setting it using select_db() immediately after, which seems to work fine. This seems related to another issue with PDO where changing the order of arguments to PDO fixed the same problem. I think both issues were on Windows XP. Regardless, this should have no impact for anyone else and fixes at least one setup.

Try out the beta. If you had problems with the install, hopefully they're fixed. If you didn't have problems with the install, please try it again to verify that it's still working.

Wednesday, January 6, 2010

2.0 beta3

I was planning to make the next package a release candidate after I finished my TODO list. Today, I added a file to SVN and discovered a few others hadn't made it into SVN either. Checking the issues, this affected 2.0 beta2. So, I put up a new beta today. In addition to having all of the appropriate files, I fixed the global admin panel which had been broken by some other change. Everything else is pretty trivial. No more extra rows in the event form from hidden fields, readonly events can be created, global admins can delete users, and some other random bug fixes with the admin panels.

Hopefully Beta3 will be the last one before the release candidate(s). So play around with it, it should be more feature-complete than 1.1. Keep in mind http://code.google.com/p/php-calendar/wiki/ToDoList, if there's something that isn't right. If you have a suggestion, not on that list, create an issue or send me an email.

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.