2.4 Released

I’m pleased to announce Event Organiser 2.4 has been released. He’s a round-up of what you can expect:

Improved iCal Parser

Improved Timezone Recognition

A legacy iCal parser (which has long since needed re-factoring) has been replaced. This new parser is much better at ‘understanding’ (converting to PHP DateTimeZone) timezones it encounters in feeds. If its not able to determine the timezone, it resorts back to the importing bog’s timezone (and displays a warning message).

Support for COUNT property

Although Event Organiser only specifies a limit to a recurring event by the last occurrence date (“recur event until…”), you can import recurring events which specify only the number of times an event recurs (“repeat event N times”). The plug-in automatically works out the date of the last occurrence.

Improved error and warning feedback

As noted above, you’ll be given more feedback when either something in the feed is very wrong, or the plug-in detects that it wasn’t able to recognise a timezone, or the event’s recurrence pattern isn’t supported by Event Organiser. In these situations you’ll be alerted to the error or warning, with line number. In most cases, you’ll be prompted simply to check that the event has imported as you would expect.

GEO Tag & Importing Venue Latitude/Longtitude Co-ordinates

The parser now recognises the GEO tag which specifies by way of latitude-longitude co-ordinates the location of the event. If you elect to import venues, it shall also import the venue’s latitude-longitude co-ordinates. Please note, because of a deficiency in the iCal specification it’s simply not possible to correctly parse and import the actual venue address (which may, or may not be provided, and even if present, may be provided in any format).


Theme Support

If you’re developing a theme, depending on how you structure the templates you may find it easier not to have to use the single-event.php, archive-event.php or taxonomy-event-category.php in your theme or otherwise, would like to “switch off” Event Organiser’s template handling automatically. You can do that now with the following line of code in your functions.php:

add_theme_support( 'event-organiser' );

(This is all preparing the way for something….)


Exclude Particular Occurrences From a Query

Added support for event_occurrence__not_in in eo_get_events() and WP_Query():

$events = eo_get_events( array(
      'event_occurrence__not_in' => array( 1, 2, 3 ),
  ) );

Future Proofing (MP6)

There have been minor CSS alterations to help future-compatibility with the new “MP6” admin (which will probably land in WordPress 3.8). This is ongoing, and current changes are minor, or specifically limited to MP6. Future updates will include further updates.


Miscellaneous

24 or 12 Hour Time

Since 2.3 the plug-in guesses in which format you’d like to enter time (24 hour or 12 hour). It does this largely based on the general ‘time format’ option in WordPress’ general settings page. However you can specifically change that using the eventorganiesr_blog_is_24 filter. Please note that this is for inputting time and the admin calendar only. Time formatting on the front-end generally uses the time format option, or can be changed by editing the appropriate template or using the available shortcode attributes:

//Switch to 24 for for inputting time
add_filter( 'eventorganiser_blog_is_24', '__return_true' );

//Switch to 12 for for inputting time
add_filter( 'eventorganiser_blog_is_24', '__return_false' );

Schedule Meat For Weekly Events

If you’re using the eo_insert_event() or eo_update_event() API, you no longer have to specify on which day of the week a weekly event repeats. Prior to this update you would have to specify array( 'MO' ) for Monday, or array( 'WE', 'SA' ) for Wednesdays and Saturdays for the schedule_meta argument. This update allows you ignore that argument. In which case it will simply repeat on the day of the event as specified by start.


Unit Tests – AKA Improved Stability

This doesn’t make any obviously noticeable difference to the plug-in (since unit tests and other development code is not distributed, apart from de-minified copies of JavaScript files). But a lot of unit tests were added to the plug-in. If you’re not sure what they are, they are simply very specific, automated tests on the code that make it harder to unconsciously break things. They cannot be used for all things (and currently they are largely checking date generation & iCal parsing/generation). But they do help ensure that shipped code is much more stable.

(I have Ptah Dunbar’s talk at WordCamp Europe to thank for getting the ball rolling on this).


Bug Fixes

A variety of bugs were fixed in this update. Venues can now appearing in Appearance > Menus (see Screen Options). There were a couple of bugs regarding importing all-day events across timezones which has been resolved as part of the iCal parser update.

There we also some UI-errors involving modal overlay, and occurrence picker. Finally, attempting to create an event with no dates (this usually only happens when importing events) no longer causes an “unknown error”, but responds with a sensible error.


The Future

For the future expect a lot more unit tests which will help with stability. On a more exciting note, there will be updates following shortly for the iCal extension, a Stripe payment gateway add-on shall be released, and the “Omega” theme will be freely available on the WordPress repository (albeit under a different name!).

Omega, as its currently called, is a fairly minimalistic and generic theme. However there are other themes in the pipeline, and I’d like to encourage any theme developers to get in touch if you have (or would like to) make an Event Organiser ready theme.

Event Organiser Pro (1.5) is still in progress, and there’ll be more information on that nearer the time.