Menu
Banner for DPCalendar 10.0.0 article

It was time for a major upgrade in DPCalendar, aimed at modernizing the Javascript codebase and introducing exciting new features which were holding us back because of template overrides. This update brings some changes which does break backwards compatibility, but it also delivers powerful new functionalities, including enhanced filtering options in front-end views, multi-event and ticket discounts, and support for multiple currencies. Read on to learn more about these improvements and how they can elevate your experience with DPCalendar.

Following our established release strategy, we are excited to announce a new major version of DPCalendar and patch releases for DPMedia, DPAttachments and DPCases, as it is the fourth Thursday of the month. Today, we are releasing the following updates:

This is a new major version and contains some backwards compatibility breaks, when you upgrade from version 9.x. All template overrides will be deactivated during the upgrade process. So be careful when doing it.

The next chapters are highlighting some of the most important changes in this release window.

Event view filters

Searching specific events is a must for an event extension. Till now DPCalendar had very basic support for that which changed in this version. Every calendar, list and map view got some more enhanced filter possibilities, similar to what is available in the back end. Filtering by author, tags, location, text or calendar is now supported out of the box and each field can be hidden individually per menu item or globally.

A nice feature everybody will like is the integration of text custom fields into the filter form. It is now possible to search there too and in the future we will add more custom fields types like lists or check boxes, but this is something for a new feature release.

More information about the front end filters can be found in the respective menu item documentation.

Multiple currencies

As DPCalendar is more and more used for online event selling together with zoom, people want to pay in their home currency. It is now possible to define multiple currencies in the global DPCalendar options where tickets should be sold with. Every price of an event has now a currency attribute where it belongs to. Like that it is possible to define a price for each currency. If there is no specific price for that currency an automatic conversion is done. These conversion rates are delivered with DPCalendar and are regenerated with each new release. Additionally it is possible to create a free key on exchangeratesapi.io and add it to the options. Then will DPCalendar fetche the exchange rate for each day and use that one.

An additional fee percentage can be configured which is added to the price. Often charge payment providers a fee when they need to exchange currencies into your default one. With this option you can forward that fee to the attendee. All the possibilities and more can be found in the respective booking system documentation.

Discount when booking multiple tickets

If you want to sell multiple events of a series or multiple tickets per event, earlybird or user group discounts were the only possibilities you had to motivate visitors buying a ticket. Now there are two more options in the event form, where the organizer can define unlimited discounts when a visitor does book multiple events or tickets within the same booking.

Lets make an example. You have a series of 10 events where each events costs 100 Euro. You can create a discount of 20% for 2 events and one about 50% for 4 events. If a visitor books now 7 events of that series within the booking process, then a discount of 50% is applied automatically and he has to pay only 350 Euros and not 700. The same can be configured for individual tickets.

The discount is applied automatically to the price and highlighted in the booking form. How to set it up correctly can be found in the event booking options documentation.

Configurable columns in export and bookings/tickets views

Every site has different needs regarding the displayed columns for CSV or Spreadsheet(xlsx) export. Till now it was a predefined list of exported fields which didn't fit the requirements of everybody. In this release it is possible to define the ordering and fields to display of events, bookings or tickets in the export with the widely accepted subform field.

We use the same logic now also in the front end bookings and tickets views. How to set it up correctly can be found in the spreadsheet plugin documentation or CSV plugin documentation.

ES modules

This is a rather technical chapter, but I want to highlight this architecture change as well, which might be of interest for other extension developers. With the release of DPCalendar 9.0.0, we moved to the new Joomla 4 architecture and skipped compatibility with Joomla 3. Joomla 4 comes with ES module support for Javascript and we changed our whole code base to modules. Like that we were able to skip our custom made Javascript loader and could benefit from the much faster native browser dynamic import feature. This allows us to declare the dependencies within the Javascript code and lazy load additional resources only on mouse click or when they appear within the screen.

Rollup is bundling our Javascript files and does automatically create the file structure and their dependencies within the media js folder from the node_modules folder. Most libraries we use, expose their functionality as ES module but to our surprise we have been a bit shocked how many libraries still have no ES module support in 2024. Nevertheless we found a way to load them in IIFE format and do now benefit from a more modular architecture with ES modules.

More features

We added some more smaller features which would fill a feature release by their own:

  • Beside the template override feature, a booking invoice format option allows now to define the most common invoice number generator. Especially the one in Europe with a date and incrementing number. It reduces the need for overrides as they require technical PHP skills.
  • Event form time/date format options as predefined list.
  • All day row is hidden in week view when there are no all day events.
  • All event variables are now abailable in the mustache code exports.
  • All buttons are rounded to add some softness to DPCalendar and the most important booking click to actions button got a nice ticket icon.
  • Option to unpublish modules when installing sample data.
  • Optimize speed with native PHP function calls.

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 9 template overrides have been disabled as most of them do not work anymore, especially on the list, calendar, booking and event views. During the upgrade process the overrides in the template get renamed with a -v9 suffix so you can adapt them safely.
  2. The biggest breaking change was the renaming of the "price" field to "prices" and the "earlybird" field to "earlybird_discount". During that move we changed the structure of the "earlybird_discount" and "user_discount" to the subform format as they have been still in the way of the repeatable field. Probably nobody remembers that one anymore, but DPCalendar was using it as it was state of the art.
  3. The exported fields list has now the default ordering in the spreadsheet and CSV plugin.
  4. We do not ship anymore none minified files and all the Java script files have now a different location as they got automatically created during bundle generation. The are also in ES6 module format wherever possible.

Conclusion

It is important for us that you know, you don't have to hurry with the update. We will support version 9 for another year till the end of life of Joomla 4 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.