With the release of Joomla 3.9, the community got a new suite of privacy tools in core. DPCalendar 7.1 hooks into this suite and extends it with DPCalendar related data. The best part is that this functionality is even available in the free version as we are convinced that everybody has the right for privacy. This and more features are shipped with the newest version of DPCalendar. Read on for the full release note and grab a copy of DPCalendar 7.1 in our download portal or buy a subscription if you need pro features.

Privacy suite integration

With the GDPR law introduced in May 2018, the Joomla community started the privacy suite project to support out of the box the most needed privacy tools to handle properly the privacy of your sites visitors and users. More information can be found in the 3.9 release notes and the official Joomla docs here and here. DPCalendar integrates into the action log and privacy end points as described in the next sub chapters.

Action Logs

The action log component allows to record various user actions, like who logged in, who edited an article, etc. The core provides an end point where 3rd party extension can hook into it and log user actions from the extension. The new action log plugin of DPCalendar integrates this functionality. So make sure you have it enabled.

Privacy

The privacy tools allows to export and delete user related data. The DPCalendar privacy plugin hooks here again in the core extension end point and adds DPCalendar related user data to the export. The delete functionality is not yet implemented as we want to gather first user feedback what exactly should be deleted as there are sensitive data like payment information in DPCalendar.

dpcalendar 7 1 action log

Sample data plugin

The sample data plugin does install DPCalendar demo events which do cover the most common features of DPCalendar. This is the same data as we provide on our demo site. Basically we do set up our demo site with the sample data plugin now. There are parameters in the plugin which do allow to define if existing data should be erased and the length of the recurring events.

Keep in mind that this plugin does not cover all the different settings and features as they are way too many of them.

dpcalendar 7 1 sample data

Joomla 4 compatibility

As we donate one of the main developers for the Joomla 4 development. It must be logical that we want to provide our extensions for Joomla 4 too. With this release you can install the package on Joomla 4 and it will work in the same way as on Joomla 3. Yes we are one of the first calendar and event management extension running on version 4.
dpcalendar 7 1 j4

Event counter improvements

The counter module is a very popular DPCalendar extension which is widely used. We added some small features to it like a start date or some small CSS changes to even better integrate into any template.
dpcalendar 7 1 counter

Small improvements and bug fixes

Beside the great new features, we fixed some bugs and added many little goodies to DPCalendar to make your life as administrator easier and to offer your visitors a neat event experience. The following list represents the full changelog of the new 7.1 version:

  • [#6033] Add option to hide days in calendar view
  • [#6200] Sampledata plugin
  • [#6204] Start date parameter for counter module
  • [#6304] Webcal link for calendars
  • [#6383] Joomla 4 compatibility
  • [#6432] Integrate into core privacy suite
  • [#6281] Update documentation screenshots
  • [#6071] Send manual payment information in new booking mail
  • [#6072] Show "book now" button in upcoming event module
  • [#6126] No listing of booked event in pdf-invoice
  • [#6145] Event form: Option to hide the map
  • [#6205] Counter should always show seconds
  • [#6206] Do not special align counter text
  • [#6235] Exchange attachments opening in new tab
  • [#6258] Add options to hide more event form fields
  • [#6332] Use the template button font size
  • [#6437] No location picker in the event form for CalDAV events
  • [#6449] Only reload the event for when the room field is enabled
  • [#6472] Smaller image size in default list view
  • [#6430] Google Calendars not showing events with attachments
  • [#6434] Wrong url redirection after selecting a calendar with multiple create menu items
  • [#6438] No Latitude and Longitude can be found when number is set
  • [#6442] Custom fields labels are not translated
  • [#6443] Marker is not shown when creating a location
  • [#6469] When active menu item is a default one, the event url is wrong
  • [#6470] In Blog view crosses the description separator the image
  • [#6471] Resource view in chrome starts always on midnight

We recommend always to make a backup first and do the upgrade on a test clone of your production site to have no unexpected downtime. Also clearing the Joomla cache is a good advice when upgrading extensions in general, not just when upgrading the Joomla CMS.

Kind regards

Allon Moritz aka laoneo
Founder of Digital Peak

DPCalendar 7

A goal of a new major version is to be prepared for the future. We worked hard on DPCalendar in the last months to achieve that by using technologies and methods which can serve us best in the next years. The architecture should be as much performant, accessible and secure as possible while still offering the flexibility you expect from our flagship product. To ensure that we touched over 1000 files, replaced over 50'000 lines of code and added another 20'000 new lines. We have now a clear, front end framework agnostic, HTML markup which follows the BEM methodology to make CSS styling a breeze. Actually Joomla 4 will use the same approach too (you see the link?).

Before we dive into the amazing new features of v7, we would like to shoot out a big THANK YOU to Joomla51. They helped us massively on the front end part while still doing heavy work on the back end template for Joomla 4. Without their input, DPCalendar would not be where it is now.

So what's new in the biggest release in DPCalendar history?

Speed, speed, speed

In 2018, a web site has to be fast for a good user experience. Even search engines do take speed as a factor for ranking. So we invested a big amount of time into research how we can increase the performance of DPCalendar. The most important steps were to reduce the amount of external dependencies, optimize CSS and reduce the JS footprint.

Every view does now only load the CSS rules which are actually needed. For example the event detail view adds only 8kb of CSS. No additional CSS frameworks are loaded in DPCalendare which do increase your page size. In the background, we are using SASS, which allows us to split the CSS code into blocks, and to reuse them in different views to keep a consistent look and feel. Yes we really started to think in blocks.

While the Javascript files are loaded in defer mode anyway to be none blocking at all. We've also removed all inline javascript code to be CSP compliant and to not block the page rendering process. We've replaced also a lot of jQuery code with vanilla JS and exchanged bloated scripts with zero dependency libraries.

Icons are loaded inline as SVG graphics from font awesome 5. Like that we do again only load what we actually need. As a bonus you can override the icons in your template when you have the need for. The core image override system of Joomla is used for that. Again, Joomla 4 will probably use the same technique.

For example we tested our event detail view with Google lighthouse and the default protostar template. We reach excellent results as you can see in the screenshot.

dpcalendar7 speed

New front end view markup

In DPCalendar 6 we introduced pure PHP views with a lot of logic and content tree rendering. The aim was to disconnect front end framework related code from the view part. This worked for the advanced PHP devs, but for the majority of DPCalendar users it was too much when they wanted to make a template override. So we reverted back to the HTML template rendering. But we did it with a rock solid concept in mind. We use BEM as class naming strategy and split all the different blocks of a view into sub layouts. Like that it is easy for the site integrator to override only parts of the views, while still leaving the rest intact. The view files itself do contain as less logic as possible, means we are using mostly only PHP if blocks or for loops, the rest is pure HTML code.

Additionally we are using CSS grid to layout the views. This allows us to work with a minimal set of CSS rules while still being responsive and detached of any external framework dependency. Like that DPCalendar will render flawless with any template, hell we even tested it with Beez and it looks good.

As part of that refactoring we restyled all the views on the front end and also the dashboard on the back end. In the next releases we will then adapt the rest of the back end views too. What we also did was, removing the social sharing buttons and commenting systems because they have a negative impact on the page loading time. Another side effect is that it is one brick less to be GDPR compliant. You should take caution how you integrate the social buttons anyway and there are good extensions in the JED which do a proper job to be inline with GDPR and social media.

dpcalendar7 views

OpenStreetMap integration

Google is making their maps API usage more and more restrictive and with the GDPR regulations, it can be the case that Google maps integration is not inline with the privacy policy of your company or organization. Se we need an alternative. Luckily OpenStreetMap can jump in and help us out here. It is an open source project which offers all the location data for free under the Open Database License, and the map tiles under CC BY-SA. With OpenStreetMap it is even possible to completely set up your own map server for geolocation lookup and tiles delivery. More information can be found on openstreetmap.org or switch2osm.org.

In the DPCalendar options you have a new setting to choose between Google Maps, Mapbox or OpenStreetMap as location provider for the Javascript maps, Geolocation lookup and location suggestions. All the maps are then rendered by the respective provider without any additional changes. If OpenStreetMap is activated, then you can define a tiles url and a geolocation url. Per default, they point to the OpenStreetMap server, but you can change them to any server which is compatible with the OpenStreetMap protocol.

From what we saw, DPCalendar 7 is the first Joomla event extension which uses OpenStreetMap.

dpcalendar7 openstreetmap

New timeline view

A new timeline view showcases your events in a more enhanced way. The events are arranged beside a timeline and do display all the information you already know from the list or blog view. The markup is simple and the CSS styling very small. So you can adapt it perfectly to your template. The same search functionality is available as for the other two list views. You can search for text, between a certain time range or within a radius of a certain location.

The upcoming module contains now also a timeline layout. You can change it in the advanced module parameters while configuring the module.

dpcalendar7 timeline

Booking options

Ever wanted to offer additional options to choose from when your visitors are booking a ticket? We added a new field in the booking fieldset when editing an event. There you can define unlimited options for the attendees to book. These options can be a meal preference or room type. Basically everything which doesn't fit into the nature of a ticket.

Beside that we added some more little features like a terms and conditions link and some UX improvements. For example is a form shown to edit the tickets directly after booking an event.

dpcalendar7 booking options

SEF urls for better SEO

A long outstanding feature of DPCalendar was to have more human readable urls for better SEO. A new core router was a feature of Joomla 3.8 which offers us extension developers an API to support clean urls without id's. As we follow the strategy to be as close as possible to the core, we wanted to make use of the new router. That's why we waited so long and didn't do a self made solution. Per default this feature is activated on new Installations, on upgrades you have to manually activate it as it will invalidate all the old urls. Means you have to manually create redirects for them.

Small improvements and bug fixes

Beside the great new features, we fixed some bugs and added many little goodies to DPCalendar to make your life as administrator easier and to offer your visitors a neat event experience. The following list represents the full changelog of the new 7.0 version:

  • [#41]   Search for similar events as template while editing the event title
  • [#56]   SEO urls for events with the new Joomla router
  • [#2849]   OpenStreetMap integration
  • [#5614]   Templates for event color
  • [#5745]   Add terms and conditions link for bookings
  • [#5851]   Move views back to plain HTML instead of pure PHP
  • [#5881]   Edit tickets after booking is done
  • [#5910]   Redo the dashboard
  • [#5944]   Booking options
  • [#5945]   Change images of an event to full and intro
  • [#6019]   Timeline view and layout
  • [#6024]   Location auto complete in list and blog view
  • [#6028]   Circle when radius search
  • [#5134]   Date filter for the map menu item
  • [#5501]   Display the global values in the menu item configuration
  • [#5572]   Resource view display without map
  • [#5843]   Don't show End time option when booking
  • [#5850]   Improve UX for the booking/save button
  • [#5901]   Override booking code/id in layout
  • [#5949]   Show captcha field always at the end when not specified in the order
  • [#5970]   Make end date exclusive in overlapping check
  • [#6003]   Restyle the views
  • [#6015]   Remove social share buttons and comments
  • [#6016]   Add event button in calendar view toolbar
  • [#6018]   Show description in all layouts in the upcoming module
  • [#6029]   Icons as SVG images
  • [#6039]   Replace jQuery timepicker with native
  • [#6043]   Remove inline javascript code for CSP compliance
  • [#5904]   Editing Google event shows fields which are not applicable
  • [#5977]   Ticket details view doesn't show the details
  • [#5979]   Logo missing in ticket from E-Mail notification
  • [#6000]   Adapt user of ticket when the booking gets attached to a user
  • [#6001]   Hide seat option is not working in ticket detail view
  • [#6004]   Do not show the price in the booking form for free events
  • [#6027]   CalDAV can't determine the deleted events correctly
  • [#6038]   Event description items have scrollbars

Backwards compatibility breaks

We put a lot of effort to make the upgrade process as easy as possible. But due the refactoring of all views it is not possible to use the existing template overrides anymore. They need to be done from scratch again. During upgrade we disable them to not break your site. With the new class naming structure you can do almost everything by CSS overrides in your templates CSS file anyway, so please double check if a template override is really needed. More information about the hassle of overrides can be found in our blog post. Beside that, you need to take care about the following changes:

  • If you do activate the modern router, the links to the old urls are lost, similar as with articles. You have to use the redirect component to create the connection between them.
  • The images are converted from a list of three images to an intro and full one. So there is a good chance that you need to reassign the existing images correctly.
  • The upcoming module renders now the description in all layouts. You can set the description limit to 0 when you want to have the old behavior.
  • The social share and comments systems got removed, as they had a dramatic impact on page speed and privacy. If you want to show them again, use one of the available extensions in the JED.

We recommend always to make a backup first and do the upgrade on a test clone of your production site to have no unexpected downtime. Also clearing the Joomla cache is a good advice when upgrading extensions in general, not just when upgrading the Joomla CMS.

Kind regards

Allon Moritz aka laoneo
Founder of Digital Peak

DPCalendar GDPR

The GDPR (General Data Protection Regulation) law is enacting on 25. May 2018 and forces web site owners to protect the privacy of their visitors in a restrictive way. These affects also the Joomla CMS and it's extensions. Luckily some of the Joomla core developers teamed up to create a privacy extension, which will be released with Joomla 3.9. More information can be found in the following links:

Additionally the Joomla extensions directory contains some helpful extensions to handle cookies and more. But GDPR has also effect for extension developers, especially when they have user related workflows like DPCalendar does with it's event and booking system.

What does DPCalendar collect?

First of all, it does not collect IP addresses or uses any other functionality which opens hidden connections to other servers, except your Joomla site. DPCalendar has the following features which do open a connection to external systems. But all of these are obvious for the site visitor and can be turned off in the DPCalendar options by a site admin:

  • Google maps
  • Facebook share button
  • Twitter share button
  • Google Plus share button
  • Linked In share button
  • Xing share button
  • Facebook comments
  • Google plus comments
  • Captcha usage from the core

If you have Google maps or any of the social media buttons activated in DPCalendar then you need to mention that in your privacy article. You can find many text snippets in the internet which can be copied to your privacy statement. We do not reinvent the wheel here.

Every entity (event, booking, ticket, location) in DPCalendar has a relation to the user which has created and last modified it. The important part are the bookings and tickets. For these the site admin can create menu items where the logged in user can see his records, download and delete them if required.

How is external events integration affected by GDPR?

External events like from Google calendar, iCloud or MS Exchange are fetched through their API from the Joomla web server. No user data is transmitted to the external systems as it is a connection from the server and not from the client browser. For some time we cache these data on your web server where no connection at all is opened to the external server. These cached events are then deleted when expired automatically.

What can you expect in the future?

We are constantly expanding the features of DPCalendar, especially in the next version 7 which will be an overhaul of all views. Also we are investigating ways to encrypt invoices. As soon as the Joomla privacy extension will be merged into core, we are integrating DPCalendar into it for an even better user experience.

DPCalendar related text for your privacy statement

You can copy paste the following text to your privacy article about the DPCalendar related data, keep in mind, this does not cover Google maps or the social buttons. Please do read them carefully and extend it when you think we missed something. The following text snippets should get you started and there is no guarantee that they are complete

This applies only if you have activated the booking system or if let your visitors create events on your calendar. When you provide your events in a read only mode then no extra privacy text is needed as DPCalendar behaves the same way as when your visor is reading an article.

If you have custom fields activated, then you need to mention them as well in the list of user data. If you have also activated a payment gateway like Paypal or Stripe, then you need to mention that in your privacy too.

Event author text

"Our event system collects no user data when you are browsing the events. When you as visitor has the permission to create events then a relation is established between the event and your user account. On the calendar profile page you can view your future events which can be visited, downloaded and deleted. If you need to gather past events data then you need to contact us through the contact form. No additional personal information is collected when you create an event."

Attendees text

"If you attend an event, then we collect the following information for the booking:

  • E-Mail
  • Name
  • Country
  • County/Province/State
  • City and zip
  • Street and number
  • Telephone
  • Latitude/Longitude

If it is a paid even, then additionally the following information is collected:

  • Transaction id of the payment gateway
  • E-Mail address of the payment account

For every booking are different tickets created. You can view and manage all of them on the account profile page here."

Disclaimer: This is not legal advice; we are not lawyers. If unsure or have questions about GDPR compliance please consult a qualified laywer.

Jandbeyond 2018

We'v also attended this years J and Beyond, a Joomla developer conference. It was nice to see all of your Joomla friends again and to meet new ones. We got a little surprise. Allon Moritz won the J.O.S.C.A.R this year for his Joomla Github contribution. The whole Digital Peakteam feels feels very honored.

Allon is also holding a session this year about service introduction in Joomla 4. You can download the slides here.

Last but not least, thanks again for the whole J and Beyond team for organizing this conference once more successfully, it is always a pleasure.

Facebook analytica leak

[UPDATE 14. August 2018: The DPCalendar FB plugin is working again since version 7.0.4 as we upgraded to the new platform API 3.1. There is still an issue with pages where you are not an admin or developer of. But it looks like a problem on the FB platform as mentioned in this ticket.]

Since the Cambridge Analytica leak, the Facebook developer team takes some measures that this can't happen again. One of the tasks is to review their app platform. A consequence is that apps do stop working and API access is not possible anymore. The DPCalendar plugin relies on the API as it is the official way to access the event data from your Facebook pages. Here is a link to the restrictions they do put in place.

As Facebook is also putting some restrictions for events fetching, it can happen that your DPCalendar plugin is not pulling the events anymore into Joomla. This happened to one of your app too while another one is still working. The problem is that we can't do anything on that part as the API is fully managed by Facebook. We can just wait till an official statement comes out what the proper steps would be to make your Facebook app and the API work again. When you log in on https://developers.facebook.com, you will see an announcement that they are not reviewing any app at the moment. But for the events API your app must be reviewed as stated here when you want to go public with it. At the moment we are not sure if the apps will still work in development mode as they did before the leak. You can find here more information about the different steps in the life cycle of a Facebook app.

What you can do in the meantime, except to wait? You can create new events in DPCalendar itself or move to another system like iCloud or Google calendar.

Here is a list of links which do provide more information regarding the progress of the platform review:

We are aware that this is a frustrating situation and are monitoring the progress of the platform review very closely. As soon as something changes we will update this article and push status updates on our official twitter account. Thanks for understanding.

Sincerely, Allon and the Digital Peak team

Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
More information Ok Decline