Thu July 2014

PBBooking Version 3.0.0 Now Available

I’ve been working away getting the PBBooking Version 3.0.0 release ready, and I’m really excited to say it’s finally available for download.

PBBooking 3.0.0 is almost a complete re-write of much of the code. Most of the focus has been on speed. If you have used some of the later versions you may have come across speed problems, particularly with Google Calendar.

This update changes all that! In testing on a cpanel based CentOS host a site with 4 calendars and 1000 (for the current month & next month only) page renders were (exclude JS, CSS & image load) < 1 second.

Speed improvements have come from:

  1. Optimization of the event lookup code and free / busy calculations and database queries
  2. Changing Google cal integration to a regularly updated scheduled job

Version 3.0.0 has also seen a number of other improvements including:

  • Redesigned and rebuilt multi language control centre for a single location to define all multi language strings
  • Proper use of the Joomla media dir to allow all scripts and CSS to be overridden
  • Upgrade to the latest version of jQuery Full Calendar

Please note that Version 3.0.0 is almost a complete re-write from previous versions and any template overrides will need changes.

To download, log in to your account and head to the downloads page or click here

Wed June 2014

PBBooking Debug Mode: Security / Privacy & Performance Considerations

In working on some client sites recently I have found that a number of people have turned on debug settings and not turned them off. This is something I generally don’t advise for a couple of reasons.

The latest versions of PBBooking offer three levels of debugging settings:

  1. Enable logging - this setting will print logging messages to the error_log and also to the PBBooking logging able #__pbbooking_logs
  2. Enable test suite hooks - this will enable front end hooks for running user interface unit testing. This is not really a setting that users need to enable.
  3. Enable FirePHP - in conjunction with the enable logging option (1) this will enable support for the Firefox FirePHP extension

Enabling the debugging settings are a useful part of troubleshooting but leaving these turned on long term can have serious implications on system performance and privacy / security.

System Performance

The logging tools are very, very, verbose and can generate a large number of entries in a very short space of time. This is particularly true when you have a large number of events, especially recurring events. The enable_logging will generate logging messages checking the availability of each and every time slot on your calendar.

As your #__pbbooking_logs table get’s larger and the error_log file get’s bigger this will slow down the performance of the booking system overall.

Privacy & Security

Firefox’s FirePHP extension is a fantastic tool for debugging lots of Javascript and AJAX calls. Unfortunately FirePHP logs to the Firefox console. This means leaving this turned on as part of day to day use means that anyone with the FirePHP extension or FireChrome extension will be able to view debugging messages that are generated.

Since introducing support for FirePHP no password’s are included in logging messages, however details of availability, calendar id’s, and system paths are included.

In summary. For performance and privacy and security reasons if you are not actively using the debugging tools to troubleshoot a problem, make sure you turn them off.

Wed May 2014

Problems with Latest Zend_Gdata

Just recently (13th May) I became aware of some problems to the latest Zend_Gdata download that has led to PBBooking users experiencing errors saying:

“There appears to be problem with your google calendar installation.”

It appears the latest Zend_Gdata download is missing the Zend/Xml folder which results in a fatal error. This is caught by PBBooking and displayed as an error message saying There appears to be a problem with your google calendar installation.

Relevant links to others reporting problems can be found here:

To obtain the Zend/Xml folder it is necessary to download the Zend Framework 1.12.6 Minimal package located here.

See the screenshot of this page below:

Mon January 2014

PBBooking now Allows Editing Booking Details Table Display

This morning I just pushed out the latest update in PBBooking The a9 update allows the booking details table to be edited. This feature enhancement has been requested by a number of users.

To edit the booking details table go to the main PBBooking Configuration and click on the Advanced Settings tab.

Booking Details
Booking Details

The booking details table will be included in the PBBooking emails in place of the |*booking_details*| smart tag. The syntax for editing this field is using Mustache.

Currently the service and the calendar object are exposed. You can access these using the Mustache dot notation.

For example the service price would be accessed by entering {{service.price}}

For registered users with a current subscription you can download the update from here:

Please note: you need to be logged in to your account to access the download.

Tue December 2013

Removal of ICS Synch - Now Only Google Calendar Synch

With the latest release of PBBooking desktop calendar synchronisation using ics publish and subscribe has been removed.

What Does This Mean?

As of the only mechanism for synchronising calendars in the commercial version is using Google Calendar Synch. You can find docs for installing this here.

Using Google calendar synch requires you have a Google account, either Google Apps, or non-Google Apps and have installed the Zend Gdata API.

Why Remove Publish & Subscribe

The publish and subscribe options have been useful but have had some drawbacks which google calendar synch removes:

  1. On most calendaring applications other than Mozilla Sunbird it was not possible to publish AND subscribe on the same calendar.
  2. In more recent versions of Outlook the ability to publish to a server other than or a CalDAV source have been removed.
  3. The script used for publishing exposed another entry point into the CMS which needed to be secured.