Fri July 2014

Front End Management of Diaries is Now Available

Hot on the heels of the 3.0.0 release of PBbooking, I am really excited to say that front end management of diaries is now available!

The ability to manage diaries from the front end has been one of the most frequent feature requests. There were certain architectural changes that needed to be implemented to make this a reality.

With the new Front End Manage Diaries users can now embed a module into an article to provide the full manage diaries experience in the front end.

Events can be:

  • edited through an edit dialog allowing changes to custom fields, service, calendar and start / end times
  • dragged / dropped to move the event
  • resized to extend the event
  • deleted
  • and of course created.

This module has the following system requirements.

  • Joomla version >= 3.3
  • PHP >= 5.3
  • Purplebeanie Online Booking >= 3.0

This module is not compatible with versions of PBBooking less than 3.0. A script at installation time will run to determine whether your system is compatible.

To download, log in to your account at and go to downloads. Not yet a subscriber? you can subscribe here:

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.