tag:blogger.com,1999:blog-88517902499143523002024-02-20T05:37:11.500-05:00PHP-CalendarThis is the news blog for http://www.php-calendar.org/Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-8851790249914352300.post-84101075746553210612015-01-28T09:13:00.001-05:002015-01-28T09:13:06.960-05:00Updating techA few months ago PHP stopped support for PHP 5.3. I tend to lag significantly behind modern versions. PHP 5.3.0 was released in June 2009. I haven't really kept up with some of the other interesting bits of PHP tech to come out since then.<br />
<br />
PHP-Calendar was originally written for PHP 3. The first release, back in 2002, was ported to PHP 4. I've tried to support as many versions of PHP as I could. Unfortunately, PHP designers like to break things required by older releases in their newer ones. The addition of new features in PHP has rarely required me to bump the minimum requirements.<br />
<br />
With the creation of Symfony2 and Composer, the PHP landscape seems to have made a dramatic shift. Symfony2 requires PHP 5.3 or greater. PHP 5.3 is already past official support. Starting with the next version of PHP-Calendar I'll be dropping support for older versions of PHP in order to take advantage of the features offered by PHP 5.3 and Symfony2. Especially Symfony2. The addition of Symfony as a requirement is going to allow me to shed a lot of custom code that I have written.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-40106449139110362362014-02-18T10:18:00.001-05:002014-02-18T10:18:08.048-05:002.0.3 releasedI'm really sorry about my poor translation support. I've had a lot of other things that I wanted to get to first. I was hoping someone else would have a clue how to manage translations and step up and do it. Well, today I finally figured out how to update the translations from transifex. I will try to keep them up to date each release. If you update a translation and want to pull it into the calendar, you can run `tx pull -a`. You need to install the transifex client first. There are instructions on their website.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-57233523426294728742014-01-22T09:27:00.000-05:002014-01-22T09:27:14.223-05:00Moving to php-calendar.orgI've had php-calendar.com and php-calendar.org for years now. I'm moving everything over to php-calendar.org and getting rid of php-calendar.com.<br />
<br />
In other news, php-calendar 2.1 is coming along quite well. I'm focusing mainly on polishing the UI. Markdown is now supported in the descriptions. The week view has been brought to parity with the month view. I'm working on improving the updater and installer. If there's anything you think is important for 2.1, please add it at https://github.com/sproctor/php-calendar/issuesSeanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-87865443781532471682013-10-24T13:42:00.000-04:002013-10-24T14:00:22.816-04:002.0 is done!Almost 5 years since 1.0, 2.0 is complete. The number of features and improvements are too numerous for me to remember and list here.<br />
<br />
I'll give a rundown of some of the highlights:<br />
<ul>
<li>Vastly improved UI. Utilizing JQuery and JQuery UI for theming. A more sensible and powerful event form.</li>
<li>Multiple calendar support</li>
<li>Improved user support, including admins for specific calendars, and user groups.</li>
<li>Support for timezones</li>
<li>User selectable language/timezone</li>
<li>Improved translation support. Included script to build translation objects and no longer reliant on built-in gettext support.</li>
</ul>
<br />
If you've been using PHP-Calendar 1.1, now is the the time to upgrade. There's an included script to move over your old events. It could use a bit more testing and feedback, but it's ready to use.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com4tag:blogger.com,1999:blog-8851790249914352300.post-51672870233965585882013-10-18T08:51:00.001-04:002013-10-18T08:51:34.202-04:00RC7 is outThis version just has some minor UI polish and bug fixes. I have just a bit of polish left until 2.0 final is done.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-66422123948433676382013-04-29T15:39:00.001-04:002013-04-29T15:39:10.972-04:00Stupid bugsWell, another under-tested release. rc4 had a stupid bug that made occurrences not submit. A little bit of backwards logic. rc5 is posted up now. I apologize to anyone who downloaded rc4.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-36196996144862898352013-04-26T16:27:00.000-04:002013-04-26T16:27:32.520-04:002.0-rc4 is outThis release is dedicated to Stefano. He did a lot of work and made a lot of suggestions that have really helped move the calendar along. The UI is now a lot more polished. Also thanks to everyone who reported bugs and helped with the translations.
There have been way too many changes for me to remember them all and list here. I'll try to mention the biggest ones though. The most obvious one is the usage of jQuery UI themes. There have been a lot of smaller UI changes. There is now an importer from PHP-Calendar 1.1. I recommend users of that version upgrade if possible. There are a lot of new features and bug fixes.
Those were the really big noticeable ones. We've stopped using PHP's gettext extension. This will allow translations to be updated without restarting Apache and without have the corresponding locale installed and PHP without gettext will still work. The downside is that it might slow down the script. If anyone runs into problems with this, let me know and I'll work on a solution. Translations can now be generated from the Admin panel.
Category permissions can now be managed, but this still needs a bit of work for the stable release. The color picker has been replaced with something jquery based. Event creation/modification times have been added. The install script will no longer run after the calendar is installed, so it doesn't need to be removed.
I'm hoping to get a final 2.0 release out within the next couple of weeks. There are few tasks that need to be done for it. We mostly need testing. The installer and updater have only gotten very minimal testing for this release.
Enjoy. https://code.google.com/p/php-calendar/downloads/detail?name=php-calendar-2.0-rc4.zip&can=2&q=Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-86788715214424609212013-04-19T01:09:00.000-04:002013-04-19T01:09:48.883-04:00Increasing ambitionThere have been more changes since the last RC than pretty much any previous release. Sabas has joined the team and is making some much needed improvements. Development has moved over to <a href="https://github.com/sproctor/php-calendar/">github</a>. Translations are now up on <a href="https://www.transifex.com/projects/p/php-calendar/">Transifex</a>. Mostly the changes have been a much needed UI makeover.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-74703495209713064322013-01-21T11:24:00.000-05:002013-01-21T11:24:15.030-05:00Closing in on 2.0 finalI just put up 2.0-rc2. I'm really sorry with how buggy the last few releases have been. I'm really bad at testing and these releases were really unlucky. I think I've gotten everything sorted out now though. 2.0-rc2 should be the best release yet.
I haven't really described the changes since beta10. I've been putting more and more javascript into the calendar. It started with Jeff adding summaries when hovering over events in the month view. Then Michal Osowiecki wrote some code to add color pickers for the categories. Since beta10 I've added date pickers for the date input fields, time pickers for the time input fields, and timezones were made friendlier by splitting them into two dropdowns. There are now useful pages after forms are submitted. Users who aren't logged in can change their language and timezone settings and have them stored in cookies. Previously the date format was just kind of hacked on and associated with languages. It's now a calendar setting and respected in all of the places I found that display dates.
Support for PHP 5.2 ended at the end of 2010. I haven't used any features specific to PHP 5.3 yet but they improved timezone support in 5.3 and users on 5.2 will see some weird compatibility timezones. My webhost still supports 5.2 and they didn't upgrade me automatically. I use Dreamhost which is on version 5.3 now, FYI. I haven't tests on 5.4 or 5.5 yet. If you find any bugs specific to those versions, please let me know and I'll fix them.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-89981343232442356862013-01-11T08:33:00.001-05:002013-01-11T08:33:58.882-05:002.0-beta12I made a bit of a blunder there. I'd forgotten to add some of the scripts to the SVN repository. When I packaged beta 11 it didn't get a few scrips and so it's a little broken. I put up beta 12 with the appropriate files. There's one bug that makes having multiple calendars not work. That's fixed in SVN and will be in the next version.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-157766730827110542013-01-03T08:49:00.000-05:002013-01-03T08:50:20.392-05:00PHP-Calendar 2.0-beta11 finally outAfter 6 months of procrastination, I finally pushed it out. A couple hours of testing and a few upgrade script fixes later and it's ready. Sorry for taking so long. Since my last post the only change was fixing some warnings in newer versions of PHP.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com4tag:blogger.com,1999:blog-8851790249914352300.post-33473589364589324152012-07-31T08:30:00.000-04:002012-07-31T08:30:01.645-04:00Closing in on 2.0 beta 11I'm almost done with 2.0 beta 11. With every beta, I feel like the next release will be the final. Then every time I start working on the next one, I think of a bunch of features that I really need for the stable release. If anyone can checkout what I have and do some testing, that'd be awesome. http://code.google.com/p/php-calendar/source/checkout
What's new? The biggest improvement is persistent log-ins. No more getting logged out after half an hour of inactivity. This feature is new and it uses the DB, so I added another updater to the installer. Please test it on something other than your production calendar. I'll need to add something to clean up the stale log-ins before release.
Other than that, I cleaned up the date/time entries. I think they're a lot friendlier now. Anonymous users can store their settings in cookies. I added an interface to add and modify instances to event. Cleaned up form submissions to take the user to a useful page instead of just a page with a success/failure message.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-14836894356878353382011-04-08T10:21:00.001-04:002011-04-08T13:56:45.846-04:00Finally 2.0-beta10I'm sorry for the really long delay. It took me a while to get up the motivation to write the updater from 2.0-beta9. It's not pretty. It's really quite ugly, but it works (as far as I know) and it lets me get the much improved beta10 out there. The installer and updater are the ugliest bits of code and presentation I've written. If someone would like to make a project of cleaning that up, it's not a particularly arduous task.<br />
<br />
So what's new? This is probably the biggest release in a while. The biggest change is the addition of support for timezones. Each calendar can be set to a timezone and users can change their timezone so they can see events at the appropriate time for them.<br />
<br />
Calendars and users can have default languages.<br />
<br />
Color picker for categories, thanks to Michal Osowiecki.<br />
<br />
Generally, there have been a lot of fixes all over the place. Check it out, backup before you upgrade, let me know of any problems. Really, don't trust the upgrader. It's been tested by only me.<br />
<br />
Update: I'm sorry, I shouldn't post when I'm distracted. I would like to thank, in no particular order, Michal Osowiecki, Pascal Rigaux, Marcelo Fortino, Hans Eksteen, and all of the people who reported issues but not their names.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com3tag:blogger.com,1999:blog-8851790249914352300.post-10229143998132764642010-10-19T17:45:00.000-04:002010-10-19T17:45:22.003-04:00PHP-Calendar 2.0 Beta9Big thanks to Michal Osowiecki, Kerri McHale, Hristo Delchev, and Kim Hansen for this release. This release may break what day of the week your calendar starts on (if you're upgrading). Simply go into the calendar admin and set it to the proper value. The look of the calendar is much improved from some changes submited by Michal Osowiecki. Hristo Delchev submitted a Bulgarian translation. A number of bugs have been fixed since the last beta. Thanks to every one who submitted a bug report or email. The main thing left to do for the final 2.0 release is writing an updater from 1.1.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com2tag:blogger.com,1999:blog-8851790249914352300.post-55524782368254306742010-06-14T16:34:00.000-04:002010-06-14T16:34:26.338-04:00PHP-Calendar 2.0 Beta8 is outThere's not really much to talk about here in the way of features. A couple of new translations, Danish and Chinese. Not too many bug fixes. No DB changes. The big changes here are all security related. I added a check to protect against <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">CSRF</a>, fixed a few XSS and an SQL injection or two. Thanks to Teemu Vesala at Qentinel and the folks at Skipfish for helping find them. The update scripts from 1.x series have been removed as they were another attack vector.<br />
<br />
There was a published vulnerability about the update scripts that I was never notified about. I'm pretty disappointed about how they handled that situation. <a href="http://seclists.org/fulldisclosure/2009/Dec/399">The security advisory.</a> Despite the fact that the bulletin says I was notified and the rep from isecauditors.com said he notified me, I was not notified. If you're using an older version of PHP-Calendar, mainly version 1.1, please delete the update08.php and update10.php files.<br />
<br />
VUPEN released an <a href="http://www.vupen.com/english/advisories/2010/1202">advisory for the security issues fixed in 2.0-beta7</a>. Anyone on an earlier beta should upgrade to 2.0-beta8.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com3tag:blogger.com,1999:blog-8851790249914352300.post-5680436842056155402010-05-19T12:04:00.000-04:002010-05-19T12:04:45.724-04:00PHP-Calendar 2.0 Beta7This is a somewhat unusual release. There were a couple of XSS issues either the early betas or maybe longer. One was an artifact from debugging where escaping HTML entities in subjects just never got re-enabled. I think that one was introduced when I added UTF-8 support. The other issue, which was around a lot long, was there was no checking of the lastaction parameter on login, so someone could craft a URL to be redirected to any location. Thanks to VUPEN for discovering these issues.<br />
<br />
In other news, I've included a French translation, allowed month names to be translated, and fixed a few statements that caused PHP to print notices on some setups.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-57962809809957431142010-03-12T22:45:00.002-05:002010-03-12T22:56:05.233-05:00Version 2.0 beta6There isn't too much new here.<br /><br />I fixed some bugs that I created in the last release. Specifically, some of the SQL statements with categories weren't quite right and when I fixed anonymous users, I broke one of the admin pages. Nothing really earth-shattering there, but they were stupid mistakes nonetheless. More noteworthy is that just because you have a table and the fields set as UTF-8 does not mean that MySQL is going to generate UTF-8 strings for you. I thought the entire calendar was UTF-8 before, but I was sorely mistaken. For those that don't know, UTF-8 is a character encoding that allows Western and non-Western characters to coexist. So if your Japanese friends want to post to your calendar in Japanese... now they can! Also, accented characters in the description broke the hover thing in the month view; that's now fixed.<br /><br />I wrote a really simple and stupid script to generate the translation files. It's in the install directory. All of the translations are horribly out of date. I'm really sorry. If you have a favorite language and you want to create a translation or you're having trouble getting the translations working, please visit http://code.google.com/p/php-calendar/wiki/Localization. I wrote that up today for the release.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-44551098483370089472010-02-11T11:22:00.002-05:002010-02-11T13:16:33.203-05:002.0 Beta 5 is outAfter about a month of slacking, 2.0 Beta 5 is out. The most important point about this update is that the DB format has changed slightly, so previous installations cannot be directly upgraded. I haven't written an upgrade script, so if you really need to upgrade your existing calendar, the easiest way is to install a new calendar with a different prefix, then rename the table `prefix_categories` to your original prefix, and look at the new `prefix_events` table. It should have one more row than your existing events table. Create that row in your events table. Embedding the calendar is changed a little, index.php now has a lot more variables to customize (and embed_setup.php has the same variables to customize), these variables were previously in setup.php, anonymous users can create events again, and events can now have categories with custom backgrounds.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-86963387023288523322010-01-13T09:57:00.002-05:002010-01-13T10:07:14.071-05:002.0 Beta4Another 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.<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-53559432684819710962010-01-06T09:59:00.000-05:002010-01-06T13:30:43.419-05:002.0 beta3I 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.<div><br /></div><div>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.</div>Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-65027767466783248032010-01-04T11:51:00.000-05:002010-01-04T13:06:32.655-05:002.0 Beta2 is outThis 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.<div><br /></div><div>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.</div><div><br /></div><div>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.</div>Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0tag:blogger.com,1999:blog-8851790249914352300.post-84385447968058537912009-06-26T14:37:00.000-04:002009-06-26T14:47:00.313-04:00PHP-Calendar 2.0 Beta1I just released version 2.0 Beta1.<br /><br />The new features include a vastly improved permissions system. Site admins can create users and give them permissions (read, write, admin, etc) on distinct calendars. Running multiple calendars may not be perfect yet, but I would like feedback from anyone who wants to try it. I decided to release before I finished the code to delete users/calendars; that will be available in the next release.<br /><br />The DB format is not finalized and there is unlikely to be an updater for the next version. This version is strictly for feedback. If you plan on updating your calendar when the next version comes out and you want to keep your events, wait. If you want to help me get the next version out, try this calendar, but understand it's going to be a difficult or strictly manual process to update.<br /><br />The updater doesn't work for this version. It's unlikely that I'm going to write an updater to version 2.0. The user schema shouldn't change, but the event schema is going to change to the previous development line by the final version. There's too much installation dependent code to make an easy updater. If someone wants to take on the task, I will certainly be a guide, but I think improving the installer or other code would be time better spent.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com6tag:blogger.com,1999:blog-8851790249914352300.post-7877676353640924542009-06-23T10:09:00.000-04:002009-06-23T10:13:45.335-04:00Move to Google CodeIt's been a long run on SourceForge, but I've decided to make a move to Google Code. The real clincher was the other day when the browse SVN feature wasn't working on SourceForge. I appreciate all of the service they've provided, but Google seems to offer some better options. If you're looking to host an open source project, I definitely recommend you take a look at SourceForge before making any decisions.Seanhttp://www.blogger.com/profile/04069078625615515360noreply@blogger.com0