Next version of Calendar imminent

I had a quick hack around today with Calendar for WordPress and I have fixed some of the long standing bugs that while weren’t serious, were causing some people issues. I’ve also tightened up some of areas I considered sightly weaker than they should be on the security front and also introduced a few new features.

One of the most notable changes is in the way the links work on the new version. Personally I much prefer the clean URL structure that currently ships with Calendar, however this requires a modification to the .htaccess file which many users were having issues with. This was due to the vastly differing ways in which people had chosen to setup their blogs and permalink structures already chosen.

The new version will provide standard arguments-in-a-url style operation and nothing else. It will install and work on any blog configuration out of the box (even MU as I’ve had requests for it to work on that too) and without edits to the .htaccess file. Clean URLs however will only be possible with a code edit to the plugin file and the addition of lines in the .htaccess file. Because of the support time that .htaccess issues have consumed in the past, users making such changes on their own will have to choose to do so unsupported.

Below I have listed all the modifications made so far, but this is not an exhaustive list of everything that will make it into the next release.

  • Security audit resulting in increased code injection protection of argument strings
  • Removed the need to edit the .htaccess file
  • Removed clean URLs by default as these were causing issues for novices
  • Placed the whole plugin into one file; install is now just a case of dropping this file into your plugins directory and activating it
  • Enabled compatibility with WordPress MU
  • Fixed the bug in the admin screen that would cause IE users to not see the dates, times etc. in add/edit event the form.
  • Allowed the week to start on a Sunday. Users who have their WordPress options set to Sunday as the starting day of the week will see the calendar obeying the setting.

A release will be made in the next few days both here and on the WordPress plugins repository. If anyone has anything in particular they would like to see in the next version then shout in comments.

   

Possibly related articles

58 Comments

  1. Simon Dickson Said,

    February 12, 2008 @ 12:26 pm

    Really looking forward to seeing a revised version. Calendaring is the one element WordPress needs to make it a world-beater. A few ideas, if it’s not too late…

    Can you include an ‘event_author’ column? I’m (slowly!) working on an ambitious multi-user blogging project, and it will definitely be useful if I can filter events by whoever published them.

    (It might also be nice to have an ‘event_category’ option, although that might be trickier.)

    And I’m wondering if the ‘Manage’ tab is the right place for the ‘add event’ screen. You could move ‘add event’ to sit under ‘Write’, keeping all the various content creation forms in one place. Or maybe it should become a main tab of its own, like Blogroll? Just a thought…

  2. Kieran Said,

    February 12, 2008 @ 1:28 pm

    Thanks for your comments.

    Calendar will be moving to its own tab as it is going to have two sub-tabs to accommodate the various new features into an intuitive interface. This is already up and running on my development version so you’ve already got your wish there ;)

    Event categories is the next thing on my list, as after the day the week starts on this has been my most requested feature. This is going to include colours for event types and the ability to create/edit/delete categories through the admin pane, so yes, this is going to get into the next release too,.

    At present Calendar is only accessible to the admin user. This is going to change in forthcoming versions (I had planned to defer this until 1.3 rather than do it in 1.2 but I might sqeeze it in depending on how long it takes) and so with it, how events are managed. Admin users will be able to see all events and add/edit/delete same and indeed set the user (much as they can do with blog posts at present) and authors will only be able to add/edit/delete events that they own.

    As for displaying the users who add events, how would you like this done? Is it necessary? So far I have tried to keep the publicly visible interface of Calendar as simple and clean as possible and so have left off some data such as if events repeat or not etc.

  3. Simon Dickson Said,

    February 12, 2008 @ 2:40 pm

    Wow, that’s some serious extra functionality on the way! :)

    Re: displaying the users who add events. I wasn’t thinking about front-end display, purely adding an extra field to the database table for coding purposes. I’m thinking of adding an overview list of ‘my events’ to the footer/sidebar of posts by a given user (maybe also the author archive, etc)… but obviously, to do that, I need the user’s identity to be stored against the events.

    Even better would be something in WPMU allowing me to have a calendar for each sub-blog, and an aggregated ‘master calendar’ showing all events for all users. (Or conversely, a single site-wide calendar with the ability to filter no each lower subsite?) But I guess that’s a lot of work.

  4. Kieran Said,

    February 12, 2008 @ 4:52 pm

    Glad you like the sound of whats on the way :)

    Users IDs will most certainly end up in the database in one of the upcoming versions (if not the next one then the one after that as stated above). You could of course then modify this plugin version to make use of this artifact :)

    I of course need to be careful what I store user wise because if my plugin references or indeed stores items from the user table in it’s tables then I need to take action of some sort when a referenced user is deleted. The plugin architecture allows me to do such things, but the big question would be what to do with events that had been published by a now deleted user? Delete, leave as user null or transfer ownership to another user would be the usual 3 (I believe the first is the choice for WordPress blog posts when a user is deleted). Suggestions welcome on this issue ;)

    The next version will be MU compatible. This means that you could modify the install of calendar on the master blog to query every standard install on users blogs. What you then do with this queried information is limited only by your imagination – Calendar is released under the GPL so you could make any changes you wanted to or needed to in order to make it work the way you wanted.

    If you wanted to get any of this done professionally then you might like to try my company, KJO Web Services. We can quote you for new products or custom modifications to existing ones such as Calendar :)

  5. Joshua Dunham Said,

    February 13, 2008 @ 12:09 am

    Is there a way to pull the data from your calendar to present it in an “Upcoming Events” widget or text box in sidebar, i.e. like in an agenda view? I like how easy your calendar integrates with WordPress but this is a feature I would really like to have. And this feature may already exist with your plugin, but I just haven’t found out how to do it. Thanks for any help you can provide.

  6. Bennett Wong Said,

    February 13, 2008 @ 6:46 am

    oh my god dude! love your plugin, but have seriously almost gone insane trying to make it work. i guarantee i have followed every instruction perfectly, but the /calendar directory shows up with the wordpress template with a huge 404 plastered in the middle where the calendar should be. the wp-calendar.php file seems to look fine, but i seriously have almost gone insane trying to work it out =(

    i usually dont resort to posting help questions on other peoples blogs, but like, if you dont help me, im afraid i will never touch another wordpress plugin again! =( =( =(

  7. Kieran Said,

    February 13, 2008 @ 9:19 am

    Joshua, no, there isn’t currently a way to do this in Calendar. Code wise this is not trivial to add due to the way that events are collected from the database, however this is being planned for one of the forthcoming releases because it has been requested so much. I expect this to be in version 1.3 rather than 1.2. A variety of display options will be provided and it will be showable by adding a function call to the code of your theme in sidebar.php.

    Bennett, please drop me and e-mail and I’m sure I will be able to help your with your 404 problems. Please detail what browser you are using, your blog URL and other important information.

  8. mr.e-man Said,

    February 14, 2008 @ 4:43 pm

    @ Bennett – I had similar issues with 404 errors. After some email conversations with Kieran I realized that I needed to change the permissions on the .htaccess file. It was apparent that after I made the .htaccess modifications and uploaded the new .htaccess file my /calendar address would function properly until I created/altered a post. It seems that WP was rewriting the .htaccess file when I made these changes. So, I changed the permissions on my .htaccess file to 444. Problem solved. All of this being said, Kieran has mentioned elsewhere that he’s removing the .htaccess modification requirements starting with version 1.2 (unless you want to keep using cleaner URL’s – in which case you’re on your own). Overall, I’m really enjoying the plugin. Thanks.

  9. Kieran Said,

    February 14, 2008 @ 4:57 pm

    Actually there is something else that can cause the 404 errors; WordPress actually sending a 404 Not Found header back with the content.

    If this happens some browsers will show the error and ignore the content, giving you a “total” 404 error.

    This issue happened occasionally due to the way in which I was sending content back to the user and the way WordPress posts and pages do it normally.

    Now that I’m using native pages and posts to display Calendar in the new version this issue will melt away for all users (I imagine).

  10. Christina Fowler Said,

    February 14, 2008 @ 6:59 pm

    I have attempted to use the plug-in before but because of the whole permissions/.htaccess stuff I wasn’t able to make it work but I’m really looking forward to the new release so I will be able to use it on all my sites!!

    I’m especially a fan of your weekly, monthly, yearly event repeat which is hard to find with other plug-ins!

  11. Kieran Said,

    February 14, 2008 @ 11:10 pm

    Glad you will be able to make use of it Christina :)

  12. Brandi Said,

    February 19, 2008 @ 7:51 pm

    Hi Kieran. Great plugin. I am a little lost as to finding good documentation, but maybe it’s just me?
    I’ve been wondering for quite a while if it might be possible to add a booking functionality. I know this is a bigger deal than can be added in a few days, but thought I’d add to your request list to think about for the future.

    Something like…from a form on your site a user can choose from dates you’ve enabled for the form on your calendar and request service/reservation/booking; and when submitted, the dates are marked as reserved pending approval on your calendar. A logged in user submission would be fine with me, security/spam wise; and an approval area for submissions could be added somewhere on your new calendar dashboard area.

    Looking forward to the new release, regardless. Cheers.

  13. Michael Wilson Said,

    February 19, 2008 @ 8:07 pm

    I am building a WordPress site that requires a large calendar of events. I’m hoping that your updated plugin will fit the bill.

    Thanks!

    Michael
    michaelandchrissy.com

  14. Kieran Said,

    February 19, 2008 @ 8:38 pm

    I hope it will Michael, let me know after the release :)

    Brandi,

    The kind of functionality you describe is not commonly required amongst the kinds of users who would blog and need a calendar.

    This is the kind of modification however that could be easily achieved were it to be required for a custom website. Once the new release has been made you are welcome to modify the code to suit your needs as it is released under the GPL.

    If you feel unable to make such modifications you can get my company to provide you with a custom modification according to your specifications.

    Documentation wise, what do you feel needs documenting? I felt the install was described clearly and once installed the features needed no explanation other than that provided on the web pages concerned. If you didn’t feel that way then I will happily improve the read me file in the next version.

    Glad you are looking forward to the release also :)

  15. Glenn Said,

    February 21, 2008 @ 4:33 pm

    With regard to the “upcoming events” suggestion (re Joshua Dunham, February 13 & reply), may I suggest a user-defined period that events are notified on. e.g. Birthday of a friend in America has 3 weeks notice to allow me to send a card, but everything else has 2 weeks. It would be useful for me, at least :)

  16. Michael Wilson Said,

    February 21, 2008 @ 5:22 pm

    If the next release allows for events to be created by users other than Admin, will the events need to be approved by the Admin user before they are posted? I’d like to allow unregistered users to create new events on the site, but those events would need to be approved by the Admin before going live.

    Thanks,

    Michael

  17. Kieran Said,

    February 21, 2008 @ 9:29 pm

    Glenn,

    That would actually be quite difficult because what events are coming up is based not only on the first date that the event occurs on but also anniversary dates.

    For example, lets say you enter in someone’s birthday as 1981-08-07. Now when I want to display a list of the events coming up in the next two weeks, but provide 3 weeks for birthdays, how does my code know to look 3 weeks into the future for this birthday? Remember the date in the database is from 1981.

    How I plan to implement the “events coming up” widget is to allow the admin to define how many days ahead the upcoming events area will show, or possibly how many events full stop want to be shown. Then the code will keep moving forward day by day until either the limit for the number of events is reached, the time limit for how far into the future to display is reached, or both.

    If you are a budding coder and want to suggest how I might implement what you are suggesting, please let me know.

    Michael,

    The plan is to allow admin to set the minimum user level a user needs in order to post events. Events will sport the users name so who posted what can be audited. I do not however intend to implement guest posting of events, or an approval system as that is really beyond the scope of what the plugin is trying to achieve.

    If you want this feature then you can of course code it in yourself as the plugin is released under the GPL, or if you are unable to do so then you can ask my company to do it for you for a reasonable fee.

  18. Greg Said,

    February 24, 2008 @ 7:06 pm

    Love the plugin! I noticed one bug, and I’m sure you’ve come across this already. In IE, the next/previous buttons seem to occasionally bring up “The page cannot be found” windows. Is this something that might be solved in the next release?

    Thanks,

    Greg

  19. Kieran Said,

    February 24, 2008 @ 8:23 pm

    Greg,

    Yes, this is known about and has been fixed in the new version. See my comment a few pages up

  20. Suzanne Said,

    February 25, 2008 @ 9:44 am

    Oh my goodness, I just can’t wait. :)

  21. Thomas Said,

    February 25, 2008 @ 7:31 pm

    Any idea of a release date?

  22. Kieran Said,

    February 26, 2008 @ 11:15 am

    I’d love to announce a date but I just can’t commit to anything at the moment due to all the work I’ve got going on. I write Calendar in my own time and it come in second compared with my studies and paid work.

    As soon as its ready though, I’ll blog about it. It’s coming, don’t worry :)

  23. William Said,

    February 28, 2008 @ 3:30 pm

    I look forward to your release, one of the better looking WordPress calendars I’ve seen.

    If possible, please provide an email to your commenters when available.

    I’m one of the few that ran into issues with the .htaccess file and eagerly await the alternative.

    Take care and great work!

  24. Kieran Said,

    February 29, 2008 @ 12:55 am

    If you subscribe to the comments on this post you will get notified of developments.

    You can also subscribe to the RSS feed for the Calendar blog

  25. Trase Said,

    February 29, 2008 @ 10:32 pm

    Hi Kieran,

    I’m very excited to hear about this and just want to thank you for all of the hard work that has gone into creating this plugin.

    I’ve been struggling with getting it implemented on my MU installation, but used some modified files from SteveAtty from the MU forums and his tips and with a little more tweaking of my own, we have it working now.

    But just today the web designer asked “can users other than Admin add/edit/delete events?” and it is so nice to be able to tell him “Not yet, but that’s on the way!” They are going to be thrilled! :)

    Thanks again very much!
    Cheers,
    Trase

  26. Maio Said,

    March 1, 2008 @ 4:36 pm

    Thank you Kerian for this great plugin. I’m waiting impatiently the new release! I have a question/request. When I see your calendar on this site with Internet Explorer 7, I have a little bug. The “mouse-over details” appears under other “events” and so it’s illegible (See your meeting on 6 March). In Firefox don’t happens.
    Can you fix this bug in next release or tell me the solution?
    I use Firefox but many visitors of my blog use IE.

    P.S.
    I tried to see your calendar with IE6 and the “mouse-over details” don’t appears. Is it another bug or your technical choice?

  27. Kieran Said,

    March 2, 2008 @ 3:31 pm

    Maio, you’re right. Do you have a fix? As far as I can see from the code there is no reason for this to happen; the z index is 100 which should put it far above anything else on the page.

  28. Rhaya Said,

    March 4, 2008 @ 4:30 pm

    Keiran,
    I am very much looking forward to the new release. I made some of the changes on my own already to your current one (like starting the week on Sunday) but haven’t figured out how to give Editors the ability to add events.

    Maio (and Keiran)
    I too ran into that same problem with IE and ended up taking out the rollover option and making the details appear all the time (see http://grace-assembly.org/calendar ). Keiran, maybe this could be an option on the new plugin?

    Thanks,
    Rhaya

  29. Kieran Said,

    March 4, 2008 @ 5:44 pm

    Displaying details all the time is not an option; there is no limit on how long a description should be and so even when the calendar is allowed to occupy a large page on a large screen the description could well affect how the whole page looks, or at least the calendar table.

    If a solution is to be implemented in the next version for the hover issues it must be to fix the hover, not to remove it..

  30. Rhaya Said,

    March 4, 2008 @ 5:49 pm

    Very good point. Thanks.

  31. Maio Said,

    March 5, 2008 @ 11:44 am

    Sorry….
    First step for solution…
    In IE6 the “mouse-over details” don’t appears.
    In the code, If I change <a> with <a href="#"> the “mouse-over details” don’t work correctly (appears under other “events” and so it’s illegible) but appears.

  32. Kieran Said,

    March 5, 2008 @ 3:11 pm

    Sadly this is not a solution; doing this causes the events to be clickable and clicking them can cause the page to refresh, something that isn’t desirable.

    Many thanks for trying though :)

  33. Greg Said,

    March 5, 2008 @ 3:26 pm

    Kieran,

    Is there a way to display all the months in the year as links somewhere above the calendar? Or display a drop down next to the current month for easy access to any month?

    Thanks,

    Greg

  34. Kieran Said,

    March 5, 2008 @ 3:58 pm

    A nice suggestion Greg. It shall be done.

  35. Greg Said,

    March 5, 2008 @ 4:52 pm

    Cool, thanks Kieran, one other suggestion. Is it possible to have the option of only showing one event per day?

    Thanks,

    Greg

  36. Jennifer Said,

    March 5, 2008 @ 5:16 pm

    Kieran,

    I don’t know if you have seen this, but for IE one solution that does seem to work is building a parent positioned div that defines the z-index first.

    This is an older post, but even the newer posts still point to the parent being the key to making the z-index work in IE.

    http://24ways.org/2005/zs-not-dead-baby-zs-not-dead/

    Hope this helps.

  37. Anne Said,

    March 5, 2008 @ 8:46 pm

    I use the calendar to post local events. One bump I’ve run into is posting events that run on a weekly basis, ie regular classes. I’ve found a way around it , but it’s cumbersome and time-consuming to enter each date. Will this be addressed in the new calendar?

  38. Kieran Said,

    March 5, 2008 @ 11:51 pm

    Greg, it *could* be done, but the important question is how would one see events hidden because only one was set to show by default, and which one would have priority?

    Jennifer, thanks for that link I’ll have a look over that link.

    Anne, you can post weekly events very easily already:-

    Say I have an event running every Tuesday, starting next week. I would enter a title, description, starting date as that for next Tuesday, and finishing date for next Tuesday also. Then I would set repeats to “Weeks” and set the frequency to 0 which in this context would mean forever.

    Am I missing something?

  39. Greg Said,

    March 6, 2008 @ 12:01 am

    Well, my client will only ever have one item in each day. This is for a Bed and Breakfast, so all they want to show is an indication of what rooms are
    available each day. I would say that priority would fall on when it was entered. So the last entry for that day wins, so to speak.

    Hope this answers your question. Thanks for all your hard work.

    Greg

  40. Kieran Said,

    March 6, 2008 @ 12:35 am

    Ah I see what you mean now Greg. I don’t think things like that are going to make it into a standard release, its just too specialised given the many ways in which Calendar is used.

    I have no doubt it could be modified to support such behaviour though.

  41. Greg Said,

    March 6, 2008 @ 12:42 am

    Understandable. Thank you.

  42. Anne Said,

    March 6, 2008 @ 12:50 am

    No, you’re not missing something. I’m a dolt and had calendar pages open and posted on the wrong one. *sigh* Sorry ’bout that. Feel free to delete and save me the eternal embarrassment.

  43. Rhaya Said,

    March 6, 2008 @ 6:06 pm

    Kieran,

    Back on Feb. 12, you said that you were hoping to give more than just the admin user access to the calendar in the new version you are developing. Just wondering if you still planning on implementing this? I would really like to give the Editor role the option to manage the calendar, but can’t figure it out how to with the current version.

    Thanks for all your hard work on this plug-in — the new features sound great.

    Rhaya

  44. Kieran Said,

    March 7, 2008 @ 8:53 am

    Yes, this will be in the next version; you will be able to set the user level that can access the add/edit/delete screen for calendar. User data will be stored per event for auditing purposes. The admin screen controlling who can edit calendar events and other settings will be available to admin only. There will be two screens in the final version.

    Hope this answers your questions :)

  45. Rhaya Said,

    March 7, 2008 @ 1:32 pm

    Great. I am REALLY looking forward to it.

    Thanks for all your hard work not only on the plugin, but also answering everyones questions here.

  46. daniel Said,

    March 9, 2008 @ 10:43 am

    Hi there,

    as I’m really eager to implement your calendar in a (non-profit :) site I’m in the process of finishing, I just wanted to ask about two things:
    Is your current release compatible with WP 2.3+?
    When is “when-it’s-done” for your next release?

    Thanks in advance!
    Daniel

  47. Kieran Said,

    March 9, 2008 @ 11:00 am

    Yes, the current release is compatible with 2.3

    “When it is done” is exactly that. When the coding is finished, when the plugin has been tested, when users are happy that the features they requested and I consented to include are working properly.

    Any earlier and I will incur more support requests, something I simply do not have the time to deal with.

  48. Ron Said,

    March 14, 2008 @ 7:35 am

    Hello,
    I am having 404 issues with IE7. I have to refresh the page, especially after hitting next or previous. I tried the permissions 444 fix without any luck. It works great in Firefox though.

  49. Kieran Said,

    March 14, 2008 @ 1:58 pm

    Yup, as I’ve detailed above this issue is known and will be fixed in the next version :)

  50. Jason Schramm Said,

    March 15, 2008 @ 4:18 am

    When the new version comes out, with widget support, will it be backwards compatible? That way I can start using the current version for a new site I am developing, and then upgrade when the plugin is updated. Also, do you have a rough time-frame for it?

  51. Kieran Said,

    March 16, 2008 @ 9:57 pm

    Backwards compatible isn’t the right terminoligy here, but you will be able to upgrade to the new version if you are using the current version at present.

    As I have said in my posts above I’m very busy and am working on this project as fast as I’m able so I cannot give a release date. It will be ready when it’s ready.

    Please can no more people ask when this is going to be released. I’m working on this as fast as I can and saying “it will be ready when it’s ready” all the time is taking up development time ;)

  52. AD Said,

    March 18, 2008 @ 12:55 am

    I have been told the release date is 16.30 (GMT) on 19 March 2008. Can you confirm whether this is true or can we expect an earlier release?

  53. Tony Said,

    March 18, 2008 @ 7:41 pm

    I’m experiencing a problem when trying to activate the Calendar plugin on my local development site.
    I’ve followed all the instructions as laid down, but when I try to activate I get the following fatal error:

    Warning: require(C:\Program Files\xampp\htdocs\wordpress\wp-content\plugins\calendar/wp-blog-header.php) [function.require]: failed to open stream: No such file or directory in C:\Program Files\xampp\htdocs\wordpress\wp-content\plugins\calendar\wp-calendar.php on line 12

    Fatal error: require() [function.require]: Failed opening required ‘C:\Program Files\xampp\htdocs\wordpress\wp-content\plugins\calendar/wp-blog-header.php’ (include_path=’.;C:\Program Files\xampp\php\pear\’) in C:\Program Files\xampp\htdocs\wordpress\wp-content\plugins\calendar\wp-calendar.php on line 12

    It mentions a wp-blog-header.php file, but there was no such file in my downloaded plugin folder.

    Any help/suggestions gratefully received.

    Tony.

  54. AD Said,

    March 19, 2008 @ 4:56 pm

    I do not have access to the new version yet. It is over 20 minutes past the proposed release date. Can this be sorted please?

  55. Kieran Said,

    March 22, 2008 @ 12:40 pm

    Tony, e-mail me for support, this is not the place.

    AD, well done, you’ve forced me to lock this article to comments. Sorry folks but clearly some people can’t be trusted not to waste my time.

  56. Kieran Said,

    May 7, 2008 @ 4:40 pm

    Calendar 1.2 Beta 1 has now been released:
    http://www.kieranoshea.com/2008/05/07/calendar-1-2-beta-1/

  57. Kieran Said,

    August 7, 2008 @ 10:10 am

    Calendar 1.2 Release Candidate 1 has now been released
    http://www.kieranoshea.com/2008/08/06/calendar-1-2-release-candidate-1/

  58. Kieran Said,

    May 30, 2009 @ 2:44 pm

    Calendar 1.2.2 has now been released.

RSS feed for comments on this post