Menu
DPCalerndar 8 party

We are very excited to release DPCalendar version 8. It is a next big step in our history. We revamped the whole booking process and got rid of many legacy code from the last years. Making a new major version is always an exciting task for developers. You are allowed to redo things which are not compatible with the previous version. But the challenge is, how far you would go. We tried to make the update as easy as possible, but please pay attention to our breaking changes chapter as well, there are things you have to check after the update. But lets dive now in the amazing list of new features.

Overhauled booking process

Since the first release where we introduced the booking feature back in 2013 the booking mask got more and more crowded. You could select the tickets, add the personal information, accept the terms and choose the payment provider, all in one screen. We split it up and now there are clear steps with one task each. As a result of this change we could add more states for a booking which indicates where in the booking process you are right now. Bookings can also set to refunded when the money went back to the attendee. If the visitor decides during the booking process to abort, then the booking gets deleted completely so you don't have to worry about zombie bookings anymore. Also the "capacity used" counter on the event is only increased when a booking gets activated. Because of this change we had to skip the seat feature as it was not reliable anymore. Perhaps we will add it in a more feature rich way later on.

If a full series booking is activated, then we created for every instance a ticket in the past. To simplify this for the attendee, we create now only one ticket which is created for the original event. Like that it is crystal clear now. Because of all these changes the back end gets limited, you can't anymore create bookings in the back end as it was a hack anyway. So bookings need to be created only on the front end by the booking process.

Beside that we made some minor improvements in language strings and how the notification mails will be sent out. Also the invoice configuration has more options to adapt the invoice to your needs. Due all of these changes we have to deactivate the version 7 template overrides during upgrade as they will not work anymore.

DPCalendar payment providers

Authors have more control of the bookings

With the new corona virus many sports clubs, yoga studios or other activity related businesses had to offer training sessions online. On bigger companies they have different teachers where they want to manage their own students. This requirement was brought to us by many customers. So we changed our mind and gave the authors more control of their own events. They can manage the bookings and tickets on the front end like an admin can do. With the multiple payment provider feature, which we will explain later, you can offer now your event creators a full attendee management experience.

Additionally we introduced a new permission where you can give specific user groups administrator permissions. Like that you don't have to give them full DPCalendar admin rights. More information about permissions can be found in the ACL documentation.

Event author

Multiple payment providers

With the ability to give event authors more power to manage their own bookings, it totally makes sense to also offer them the possibility to add their own payment provider configuration. All our payment provider plugins do allow you to add unlimited different configurations per plugin. Like that you can add multiple PayPal or Mollie accounts. Every payment provider we support is working with API keys. Like that you never have to expose your username or password. Every payment provider support also a test mode which we use extensively in our automated test system.

The different configurations will then appear on the booking confirmation page. Each payment provider configuration does also allow to define the description text and icon which should be shown in the list. Like that you have full control about the style. If you don't want to show all payment providers in the list, the author can select per event which providers should be listed.

Under the hood a big task was to get rid of Omnipay as all of our payment plugins were based on this library. There we had an issue that some packages were not up to date, had no proper release cycle or were abandoned. Also we had to add some hacks as soon as we added a new payment provider. Additionally they were not using the latest API, for example the Stripe integration was using the deprecated Stripe.js API. Now we have full control and are not limited to add new payment providers which are not even supported by Omnipay. To our surprise the code of the payment plugins became smaller and not bigger when we started to talk directly to their API endpoints. As a result of this change we had to skip the 2checkout plugin, perhaps we will add it later again. Also the legacy express payment option from PayPal is not supported anymore.

Payment providers configuration

Coupons

Coupons are an important feature for an event management system. Especially when you want to attract clients on various channels. This is a long standing feature request and now we finally have it! It comes with tons of different options, where you can limit the coupons by calendar, user, email or hits. The coupon itself can either be a percentage or a fixed value which should get subtracted from the original price.

On the front end there is now a coupon field available when the visitor arrives at the booking form view. Does the visitor enter the coupon code the new price gets calculated with the discount immediately. This also plays nicely together with taxes and user or earlybird discounts.

Coupons

Zoom integration improvements

The zoom plugin is already very feature rich. In version 8 we added a couple more nice functions. The biggest change is that when you create an event and have a calendar selected in the Zoom tab in the event form view but no meeting number, then a meeting will be created automatically in zoom and the event will be updated with the number, password and the hashed password. So you don't have to leave DPCalendar anymore to make a connection between DPCalendar and zoom.us. The new hashed password field is used when the attendee clicks on the Join in app button, so the person is not forced anymore to get the password upfront. Together with the needs ticket setting this is nice way to to let people join without ever knowing the meeting password.

The zoom join fields in the event details page are now visible till the event has ended, so people can join during the meeting. Has an event finished, it checks automatically for recordings and does embed them neat into the event details page. It even supports multiple recordings per meeting number. The author of the event is now also able to see the fields and new recordings even when the person has no tickets.

Zoom in Joomla

API updates

DPCalendar is famous for its integration of external event systems like Google calendar, MS Exchange or iCloud since day one. All of these systems have nowadays a proper API, mostly they are REST based web services with JSON responses. Beside their REST endpoint most of them do offer also a PHP SDK which should help the developers to integrate their API. The downside by using these SDK's is that they often bloat your code and you get into a dependency hell. Especially in an environment where we have with different PHP versions and different SDK versions between the Joomla extensions. Another issue is when these SDK's loose maintenance and do not update to the latest provider API.

So we skipped the following SDK's and replaced it with one single class which is curl based and less than 200 lines of code:

  • Google PHP SDK
  • Facebook PHP SDK
  • CalDAV lib
  • Meetup library
  • Twitter codebird class

As a result, the installation bundle is more than half the size smaller as on version 7. If the zip file is extracted we have now only 5'500 files which need a disk space of over 21mb while version 7 has over 7'900 files and uses 44mb.

More small goodies

We are eager to improve DPCalendar on a regular basis to become the most intuitive calendar and event management extension for Joomla. Beside the big features we added some smaller ones you will like as well:

  • Images in the upcoming module and list views are now links to the event details view.
  • Tooltips in the calendar view have now a white background.
  • The whole calendar JS library got updated to version 5 with better performance and simplified output. Additionally we replaced the heavy moment.js library with the more lightweight dayjs one. Saves us a couple more kb per page request.
  • Unpublished events are displayed on the front when the author has the edit state permission.
  • When an event is saved and some images are set then the dimensions of the image are saved in the background. Like that we can lazy load the images and do prevent content reflow.
  • Maps sizes are set now as inline styles to again prevent content reflow which gets no penalty from google.
  • Resource views get more configuration options and better default date formats.
  • CSV exports got more fields.
  • Alias are kept when editing recurring events.
  • Counter module supports now multiple events.
  • There is now an option in the event custom fields to be visible only when the visitor has active tickets.
  • The MS exchange plugin can handle now deleted instances in an other timezone correctly.
  • The access content field hides now more fields like schedule or prices.
  • The Google calendar plugin uses now also properly the access token to omit an extra API call.
  • Upgraded the Facebook, Twitter and Meetup API versions.
  • SQL plugin supports table joins.
  • Booking state in the manual plugin can be configured now and is not hardcoded.
  • Locations use now countries from the country database table and is not anymore a free text field.
  • Locations view has now a grouping option.
  • Some language strings got reevaluated.
  • The Facebook and Twitter plugins do add now the required meta tags to the event details and list page.
  • We fixed some W3C validator errors.
  • The list view shows now the description as well.
  • Locations have now tags and you can filter by tags in the locations view.
  • Fields and tabs of the event view can be selected in a list. Now are all optional event fields supported.
  • Google calendar import can now update calendars when they exist already with the same title.

Breaking changes

We know that upgrades are always a risk, especially when it is a major one. So our goal was to make the pain as small as possible. But some stuff works now differently than before and needs your attention.

  1. Version 7 template overrides have been disabled as most of them do not work anymore, especially on the booking views. But also the views which do use the calendar script will not work anymore as we have upgraded the library to the latest version which was also a major shift. During the upgrade process the overrides in the template get renamed with a -v7 suffix so you can adapt them safely.
  2. The countries field of the location is now not anymore a free text field, it depends on the countries table we have in DPCalendar. So all countries of locations gets deleted during the update. You need to define the country again for every location. To the rescue you can do that with the batch action in the back end list view.
  3. Also double check the payment plugins if we have converted the configurations properly. Especially when you have used the PayPal legacy express driver then you need to switch to the REST API keys.
  4. Also we renamed some language strings. Check your language overrides if they do still work.
  5. To hide fields in the event form we have now a list and not one option per field. That's why you need select them again in the DPCalendar options. The same for tabs.
  6. We increased the minimum PHP version to 7.4 to be prepared for the future as we still supported it down to the end of life version 5.5.9. It hold us back to upgrade some libraries and we had to manually patch some of them by ourselves. The gap between PHP 8 and 5.5 was too big to support all of the versions in between.
  7. Internet Explorer is not supported anymore as it hold us back from upgrading external scripts and going forward with our own JS and CSS code.
  8. Vendor assets like the fullcalendar library are only shipped in minified format to decrease the installation bundle size.

Backupmonkey partnership

Digital peak stands for high quality. So we teamed up with our friends from Backupmonkey.io, to ensure that our extensions will work perfectly with their top notch update, backup and monitoring service. Nowadays it is crucial to have somebody which automates Joomla maintenance tasks and backupmonkey is a raising star in that area. But this is not all, if you have a Digital Peak subscription, then you will get 60 days of free service instead of 30 when you buy their product. At the same time if you are an existing backupmonkey customer, then you will get 25% discount on our extensions. Coupon code can be found in their dashboard. So don't hesitate to give their product a try!

Conclusion

It is important for us that you know, you don't have to hurry with the update. We will support version 7 for another year or two with bug fixes. Due all of these changes, please make a backup first, before you upgrade!!

Last but not least we would like to say a big THANK YOU to all of our customers, without them we would not be where we are right now. Their loyalty and trust are motivating us day by day to improve our work continuously. And of course to the fantastic Joomla community, without them all of this would not be possible.

Kind regards

Allon Moritz aka laoneo
Founder of Digital Peak

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.