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.

j and beyond 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.

fb analytica leak

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

dpcalendar 6 2Right before the end of year, we have a great present for you. DPCalendar 6.2 has arrived which comes with a lot of new features and better performance. The biggest new feature is the resource view for locations which allows all subscribers to show a horizontal resource view in the location details and list. Read on for detailed explanation of all the main features.

Resource view

Many DPCalendar users do use it as a resource management tool or as event calendar. A missing peace in their workflow was to have . It is now possible to define multiple rooms per location and assign events to these rooms, before you could only assign an event to a location. On the location detail page a new resource view is displayed which gives a detailed overview about the rooms and which events do happen in these rooms.

The events are loaded trough ajax to not block the page load and are rendered by a similar script as the main calendar view. The new view comes with four different pages:

  • Day page
    The day page shows the full day with hourly slots.
  • Week page
    The week page shows the full week, where every day is shown as 24 (hours) slots.
  • Month page
    The month page shows all days of the month, where each slot represents a day.
  • Year page
    The year page shows all days of the year, where each slot represents a day, similar to the month view.

Of course you can control in the settings which view should be shown initially.

resource view

Faster page load

As fast pages are nowadays critical for the sccess of a web page, we made our hands dirty for you to improve the performance of DPCalendar. A lot of old JQuery based scripts got replaced by smaller plain vanilla libraries. This has the advantage that thy require less bandwidth, are faster executed and do not have any external dependency. For example we were completely rewriting the counter plugin and do have now a 600 Bytes script loaded with a tiny date library instead of a full blown jQuery related timepicker.

All the scripts are minified and loaded in defer mode, means they do not block the page rendering and are fetched during the rendering process of the browser and executed at the end. More stuff is done then in parallel.

We do not combine the scripts as HTTP/2 is supported by every major web server and it is faster to have many small scripts instead of a big one.

waterfall

Overhaul of the list and map views

The list and map views got some tiny markup changes. But the biggest diffference are the new filter options. Beside the search feild, you can now define the date range and a location and radius to search events within. If the site visitor wants to search for events near him, then there is a new button which determines the current location and searches for close events.

map search bar

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 6.2 version:

  • [#4791]   ICAL Link - Goolge Calendar
  • [#4939]   Access to calendars through a OAuth token
  • [#5193]   New event with a new venue in one step
  • [#5227]   Resources view based on locations
  • [#5284]   More search options in the list and map view
  • [#5297]   Tags filter in modules
  • [#5309]   Multiple rooms per location
  • [#5384]   Customise event form view
  • [#5409]   Resource views for locations
  • [#5414]   Lighweight Datepicker
  • [#5432]   Manual payment plugin send information mail
  • [#5281]   Obfuscate passwords of external calendar systems
  • [#5326]   Upcoming and counter modules show/hide
  • [#5367]   Show image in SQL plugin
  • [#5372]   DPCalendar Map search consider live location lookup
  • [#5373]   SQL import events should use plain id for urls
  • [#5427]   Configurable resource default view
  • [#5442]   Lightweight tooltip library
  • [#5443]   Make counter native JS
  • [#5447]   Load JS files in defer mode to improve performance
  • [#5448]   Update iframeresizer lib and move to vanilla js
  • [#5466]   Move loader to it's own layout
  • [#5469]   Allow to disable the filters in the map module
  • [#5332]   Quickadd floats off the screen
  • [#5404]   Mini module clears system messages
  • [#5410]   Change event time in front end update missing
  • [#5449]   System messages are not shown full width on back end
  • [#5458]   Incorrect Ticket Limit For Users
  • [#5464]   Mini and main calendar not showing the list

How to upgrade?

We tested this version extensively, so you can be safe when upgrading. Just install the whole package from our download site or trough the Joomla update manager, DPCalendar will take care about the rest. We touched a lot of layout files because this new features had a big impact on them, so please double check your layout overrides!!

BUT 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

overrides

Before we start, Joomla template overrides are a very good tool for site integrators to adapt the core to their needs. But it is a pain for extension developers like us. Why? We will tell you, read on.

What are template overrides?

Template overrides do require some basic PHP, HTML and CSS knowledge. So it is not a tool for everybody who uses Joomla. It allows site integrators to override the output of any extension in a template. It helps when you have a special requirement which can't be controlled by an option or when you need to change the HTML markup. Basically you can copy the view file (mostly default.php) from the extension view folder to your template html folder. The Joomla view renderer will then automatically pick the one form your template instead of the one from the component. It works for core and 3rd party components, modules, plugins and layouts. More documentation can be found on the web or in the official Joomla docs.

What is the problem?

As the view file is a copy of the original file, the problem comes on upgrades. When the original file has changed after an extension is upgraded. For example when new code is added, then the override doesn't get adapted. This can lead to errors or missing features. This is not a problem only for extension developers, also the core is affected. As we introduced custom fields, some templates had an override for the front end article editing form from an old version which was not able to display custom fieldsets in the form. But this are not regular cases in core as new features get added on a much slower pace.

For extension devs it becomes a real problem as we ship new features more often. For example in the release of DPCalendar 6.2, we replaced some javascript libraries with new ones and added the defer attribute to load them faster. All of this happens in the template files (eg. default.php). If you have an override in place, then it still tries to load the old files and can crash your site.

Is it then not a BC break?

You can argue that it is a BC (backwards compatibility) break. But it is hard to expand BC in layout files, otherwise they will become bloated. It would then also mean that every new feature would require a new major version which would be insane.

Is there a solution?

Don't do overrides! Wait, really? It is not that dramatically. But you should really consider if an override is needed or if the changes can be done trough CSS as well. We have many customers who want to do overrides, but then we figure out that it is possible to make the changes with CSS commands too. Or we have already an option which does the job. Yes we have a lot of options, so you can control a lot within DPCalendar.

Joomla has a very minimalistic override management UI which doesn't help here much. So what we did, for Google Summer of Code 2018, added a proposal to spice up the override management. Basically you need a diff viewer and an override detector when an extension or the core is upgraded and inform the site owner that layout files have changed where an override exists in the template.

We hope to shed some light into the biggest issue of Joomla overrides.

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