dpcalendar 6

Shortly after Joomla 3.7 was released, we are happy to announce DPCalendar 6.0. Our new cutting edge version of one of the best Joomla calendar and event manager comes with some amazing new features. We use the kickass new custom fields library, which is by the way donated by us to the Joomla community. Beside that we were revamping the whole template layer of DPCalendar to work with any major CSS frameworks like Bootstrap 2/3/4 or UiKit, as well as Font Awesome for icons. More on that later.

Additionally we are preparing slowly for Joomla 4, but this will be covered in another blog post. First we want to introduce our new major features of DPCalendar 6. Enjoy reading.

New template layer

Till now we have already out of the box support for Bootstrap 2 and 3, but we were still shipping  a namespaced bootstrap 2 version which can be activated in DPCalendar when the template didn't fit into the bootstrap stack. We got rid of that and refactored the whole templating layer of DPCalendar to work natively with any major CSS frontend framework like Bootstrap 2/3/4 or UiKit. But that's not all, want to be ready for the future as well when old ones get deprecated and new ones arise or custom elements get implemented. Means our templating layer is made that way, adding a new CSS framework or icon set requires us minimal code changes and they will affect all views and layouts in DPCalendar. This step is needed as Joomla itself will not be backwards compatible across major versions when we do bootstrap major shifts. More on that problem can be read here.

Additionally we have been moving any part in DPCalendar which produces output to a layout. We went even so far that the forms for events, locations, bookings and tickets are rendered by the same layout on the front and back end.

dpcalendar 6 template layer

New location views

There are two new views available. A locations view which shows all configured locations in DPCalendar and a location details view which shows the information about a location and the upcoming events. The event details pages does not link anymore to Google maps directly, instead of to the location details page. For every menu type additional parameters are available to define the initial latitude and longitude as well as the zoom factor.

Under the hood we refactored the code the way, that we can integrate more maps libraries like OpenStreetMap. But we open that door in a future release.

dpcalendar 6 locations

Updated libraries

  • Calendar library
    We have updated our Javascript calendar library. Beside some performance improvements, it comes with a new list view which has a fresh look and some nice little features. You can define business hours, working days and when there are too many events on a day, then a readmore button is shown.
    The mini module has now the same calendar options as the menu item
  • CalDAV
    We updated the CalDAV library to be able to integrate more features in the future like calendar sharing or scheduling.
  • Google attachments
    The Google calendar API serves now attachments from Google Drive. The DPCalendar Google plugin integrates them nicely in the event details page.
  • Payment gateways
    The payment libraries got a version shift. Like that we can talk now with paypal trough their Rest API as well.

All Javascript and CSS files are now in the media folder and can be overriden in the template when desired.

dpcalendar 6 multiple

Joomla custom fields

As DPCalendar was already working fine with DPFields, it supports now out of the box the Joomla custom fields. That's why DPCalendar 6 is only compatible with Joomla 3.7. If you want to have a look how all of that works, then we suggest to check out our demo site. We prepared a series of events for you where you can see how it works. On the back end you can also play around with the custom fields to get a feeling for it. Basically it works the same way as with the core, eg. articles or contacts.

We support custom fields for events, locations, bookings and tickets.

dpcalendar 6 custom fields

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.0 version:

  • [#3261]   Event limit option
  • [#3274]   Map of locations as menu link
  • [#3563]   Location list menu item
  • [#4071]   Business hours
  • [#4272]   Support multiple frontend frameworks
  • [#4422]   Attachments - Google Calendar
  • [#4462]   Mini module should have the options like the component
  • [#4090]   Move calendarlist JLayout to view layout
  • [#4126]   Upcoming: Modern calendar icons
  • [#4170]   Events from subcalendar are fetched in parent calendar via CalDAV
  • [#4178]   Add option to hide only capacity used
  • [#4181]   Show prices inline in edit form
  • [#4187]   iCal name is not human readable
  • [#4199]   Save and copy on front end
  • [#4208]   Email notification subject not according to content
  • [#4214]   Calendar view, define which views to show
  • [#4220]   Maps key warning
  • [#4244]   Option to disable default to list view on small screens
  • [#4255]   Using Joomla lib to render tabs
  • [#4263]   Optimize CalDAV client sync
  • [#4308]   New location from frontend with gps cords.
  • [#4451]   Clicking from the mini calendar defaults to "Day" view
  • [#4465]   Ability to set a default calendar category when adding
  • [#4500]   Show current time as line
  • [#4537]   Caldav acl privileges - Edit own + delete not possible
  • [#4556]   Event details page, consider the address setting
  • [#4583]   Use the same layout on the front and the back end
  • [#4628]   Joomla custom fields integration
  • [#4644]   Remove duplicate dpcalendar string from plugin names
  • [#4670]   Remove DPFields support in favor of Joomla custom fields
  • [#4569]   Lat/long input not validated in backend
  • [#4635]   Booking Details created time incorrect

How to upgrade?

We tested this version extensively, but we expect some bugs in the next weeks as we have rewritten every single line in the template and layout files (there are over 1'000 files touched). So please make a backup before you do the upgrade! The template overrides will not work anymore, so please remove them from your templates HTML folder. After these steps are done, you can install your downloaded DPCalendar 6 package trough the extension manager or update it trough the extension update functionality.

The 5.x series changes now to maintenance mode. This means, when critical bugs appear or security issues do arise, then we will make patch releases for the 5.x series. No new features will be released, our full focus goes to version 6.

This release took us longer than expected, but it was worth the effort and time we put into this version. You as valuable user of DPCalendar will have a great new calendar and event experience for Joomla for many years!

Kind regards

Allon Moritz aka laoneo
Founder of Digital Peak

future dpfiels

As you probably know, DPFields is the base for the new Joomla 3.7 custom fields feature. Most of you are eagerly waiting for the migration to Joomla custom fields. So we want to explain the process and clarify the future of DPFields in this blog post.

The diff to Joomla custom fields

Since the merge of the custom fields feature in October 2016, we have been working heavily to stabilize it. During that time the community decided to skip some of the features we have already shipped with DPFields. For example the Gallery plugin is not available in core anymore or the templating functionality to render the fields inside the article description. One of the biggest changes was to move from categories to it's own entity for field groups, which do complicate the migration very much. More on that a bit later.

On the other side some new features have been added to custom fields. The biggest one is the move to fields plugins. Beside that some minor changes do have happened on the database schema and in the logic which will affect the migration path.

The migration

For a long time after the merge it looked like that the migration will just be a database table rename and all is good. But with the changes from categories to their own field groups, a lot of logic needs to be implemented on the DPFields side to make a painless migration. Not even to mention taking care of all the ACL settings. So it will take us a bit of time to make a proper migration script.

But don't worry, we will come up with a solution as we are using DPFields in production by ourselves and want to migrate to Joomla custom fields as well.

What happens to DPFields?

As we mentioned earlier, the core doesn't have the same feature set as DPFields has. So we will not shut down DPFields. We will make DPFields a product on top of Joomla custom fields with more features. This means, that we migrate the DPFields fields to com_fields fields under the hood. Additionally we have planed to offer dynamic content types and some new field plugins. All of that needs some time for development, so follow us on Twitter for latest updates. The core of DPFields will be forevere free of charge, that the users will have a painless migration to Joomla custom fields. Perhaps we will add then in the future some Pro features, but this is not decided yet.

Happy Digital Peak team

After all the positive feedback about Joomla custom fields, the Digital Peak team is very happy that we brought it into the core. It costed us a lot of energy, resources and time, but at the end we are still convinced that it was worth it. We are sure that Joomla is now on a good track and that it will help a lot of web site administrators and site integrators to spice up their site. We felt a new vibe of motivation in the community and with the plugin based approach we are sure that to Joomla eco system will come up with amazing new custom fields plugins.

So enjoy the new Joomla custom fields!

Allon Moritz
Founder of Digital Peak

digital peak 2016

It was a turbulent and amazing 2016 for DIgital Peak! We followed our mission to be part of the great Joomla eco system. With this blog post we want to highlight some of our special moments and to give a short preview into 2017.

Review of 2016

Joomla events

As the Joomla community is organizing Joomladays all over the world, we didn't want to miss some in our region. We attended Joomla day Germany, J and Beyond in Barcelona and Joomla day Austria. All of these events were really amazing. We met a lot of people from the Joomla community, we just felt on a family gathering.

Here is a link to our presentations on these events.

DPCalendar

The biggest change for DPCalendar was the revamped booking system. We made the base to easily implement new payment gateways, getting in different ways of discounts, earlybird or user group discounts. Additionally the layouts got split up to easily override single parts and not whole views.

Our ongoing effort is to support multiple frontend frameworks. In 2016 we introduced 100% compatibility with Boostrap 2 and 3. But that's only the beginning, we have big plans to support more in 2017. Beside that we invested a lot of our resources implementing small features which do make the life of the event manager more convenient. Tons of new configuration options were added to tweak the last bit out of DPCalendar.

DPCalendar is growing massively in 2016. Both in code and in extensions. As for now, we ship 27 extensions in our Premium package. Integrations of external systems like Google calendar has grown to 13 which are developed by us. There are more out there which are developed and maintained by individuals. Our eco system has grown, as more and more developers are integrating DPCalendar into their own extensions.

Joomla

We invested quite some resources into the next Joomla minor version 3.7. It will contain a new custom fields feature, which is a port of DPFields into the Core CMS. Actually we are stabilizing it and fixing some UX issues. Additionally, Allon joined the new media manager team, to brush up the existing media manager for version 3.8. Development has fully started, where we will introduce some awesome new features.

As development for Joomla 4 has started as well, Allon is helping out with some coding tasks in the closer future. We love Joomla, and that's why we try to help in the core as much as we can.

The plan for 2017

DPCalendar 6.0 will come with optimized multi frontend framework support. This means, we will provide adapters for Bootstrap 2/3/4 and UIKit for our views. When there will be a need, additional adapters can be implemented with ease. The calendar view will be improved and more payment gateways will be introduced.

As already mentioned, we want to invest some resources into the active development of the core Joomla CMS, to help, making it the best CMS on the planet! We plan to help for Joomla 4 development, spicing up the new media manager and improving custom fields.

So before the year 2016 ends, we want to say THANK YOU to all our existing and new followers, without you, Digital Peak would not exist. Also a THANK YOU to the whole Joomla community. It's so great to be part of it, you make the web really special!!

 

Kind regards

Allon Moritz aka laoneo
Founder of Digital Peak

dpcalendar ssoft solutions plugin

We all know about the great flexibility DPCalendar offers but some use cases from our users are quite special. As it was for Sven Scheidler from Ssoft-Solutions. For one of their clients they needed an enhanced notification system when guest visitors are creating events on the front end of the Joomla site. This guest blog post will describe their way with an upgrade proof solution.

DPCalendar integrates Joomla functionality as much as possible, so it makes extensively use of the Joomla event system. It is possible to hook itself into the workflow of DPCalendar with a self written Joomla plugin. The approach from Ssoft-Solutions was, to develop such a plugin and send out notifications based on various criteria.

Requirements

It is possible to allow none registered users to create events on the front end of DPCalendar. Trough permission settings it can be defined that these events should not be published automatically, because an admin needs to approve them first. So an admin needs to get a notification when a new event is created.

DPCalendar has already a notification system, which allows to send out notifications to user groups when events are manipulated. This is enough for most of our user base, but not for Ssoft Solutions. They need to get notifications sent to specific E-Mail addresses and not to whole user groups. Additionally, the notifications should only get out for front end events.

Solution

First thing is to disable the notification system of DPCalendar completely, no user groups should be selected in the DPCalendar options. As a second step a new Joomla content plugin was developed which contains the notification logic. This plugin hooks into the process when an event is created or edited and sends out the notifications based on the plugin settings. The plugin contains the following configuration options:

  • An E-Mail address where all notifications should be sent to.
  • Send notifications on front end only or front end and back end actions like creating or updating an event.
  • Send notifications for new events or updated events or both.
  • Body text for the message, if none is defined a default text will be taken. Additionally the title, ID and calendar name will be sent out with the notification mail.

The plugin can be downloaded free of charge from here. Ssoft-Solutions will be happy to get feedback trough the contact form on their site.

We would like to say tank you to Digital Peak for their great software DPCalendar!

joomla bootstrap

In September 2012, the Joomla project released the new major version 3.0 of his CMS, including Bootstrap (BS) 2.3.x as frontend framework (FF) library. It was great at that time, Joomla became the first out of the box responsive CMS on the market. The problem was that bootstrap should only be used in the Protostar template on layout overrides. Instead of, the core was soaking Bootstrap up and nowadays the whole Joomla CMS code is filled with Bootstrap 2.3 markup.

Bootstrap did evolve and released some new major versions which did break backwards compatibility. Because of that, the Joomla CMS can't update within a major version to a new Bootstrap major version like BS 3. This article will explain why no upgrade can't be made, the problems with BS 3 templates and how to solve the vendor lock in.

The semver problem

Joomla follows semantic versioning, so we can't change in the Joomla 3 series to Bootstrap 3 or 4 because it would break backwards compatibility. The Joomla CMS needs to stick with Bootstrap 2.3, despite the fact that Bootstrap 2 is end of life since ages. Yes, we are using heavily a not maintained version of Bootstrap as frontend framework.

I'm sure that Joomla 4 would be released already if we didn't get stuck with a Bootstrap major version. Joomla's major releases are some kind bound to the Bootstrap major release cycle, which is a bad situation.

bootstrap migrate

Problems with a BS 3 template

Bootstrap 3 is the most popular version (yes I know, Bootstrap 4 is on it's way) to create web sites with and has a large user base since years. For the template developers it is a selling point when their template runs on BS 3. Now we have the situation that many templates are running on BS 3. Because of the Joomla layout override system, which is great by the way, it is possible to create a template with Bootstrap 3 in Joomla 3 very easily. But the site admin who is installing a BS 3 template will face the following problems:

Javascript errors

The Javascript code of Bootstrap 2 and 3 does not work well together on the same page. Javascript errors do happen and can break your site. Trough some overloading techniques it can be prevented to load both scripts, but it will be very likely that other errors will happen.

Functionality not ported back

The layouts do need to be copied to the template and adjusted to BS3. New functionality in the views are not automatically ported to the template override. Either way the site admin is doing it or the template developer ships a new release of it's template. Hopefully you didn't change the template override, because then the change got reverted during the template upgrade.

Security issues are not fixed

If there will pop up a security issue in a layout of the core, then the templates do need to be adjusted. Updating Joomla with the fix is not enough! The template developer needs to provide the fix to it's user. Pray that you are not using a not maintained template.

Extensions

Extensions do need to support BS 2 out of the box. You as site integrator will need to find a way to make the extension work properly with BS3 then. Either way you have to create the layout overrides by hand or you are lucky and the extension is supporting BS 3 as well. It can do that by skipping Bootstrap and use a different library, then the extension does not look tightly integrated. Or it can load it's own namespaced Bootstrap CSS, both ways do bloat the site.

bootstrap migrate error

What happens when we upgrade the core to BS 4?

Site Admin

It will be very likely that upgrading from Joomla 3 to 4 will be a one click upgrade. This is true for the PHP code, but not for the template. You need to create a new template which works with BS 4, if it is BS2 based. If it is BS3 based, then you need to adapt all the overrides to work with Joomla 4. It's a kind of big bang upgrade, let's cross the fingers and pray that all is going good. Hopefully you don't maintain large Joomla sites, upgrade will be a pain.

Extension developer

Extension developers do need to support in their extensions BS2, need to find a way to work with BS3 and must be compatible with BS4. For quite some time they need to provide their extensions for Joomla 3 and 4. Either way, the extension providers will have the following options to develop their extensions:

  • Maintain wo different code bases of the extension.
  • Stop developing for Joomla 3.
  • Find a way to deal with it by using a namespaced or different library of FF.
  • Just give up and move to Wordpress.

It will be almost the same as with Joomla 2.5 and 3.

Why we need some transition layer?

The goal must be, to isolate bootstrap related code in the core. If that happened, then we can introduce new FF libraries or their major versions much faster within the same Joomla major version. Under every circumstance, the template needs to define with which frontend framework version it want's to work with. The job of the core is to load the right layouts and views then. Good would be if there can be some kind of layout inheritance, where the framework related layout can parameterise and call the default layout. This would avoid duplicated code.

The benefit would be that we are able to introduce in Joomla 3 BS4 and deprecate BS2. The site admin can then make a copy of the template, migrate it to Bootstrap 4 and assign page by page to the new template. If all pages are done, then the upgrade to Joomla 4 will be possible without any issue. In Joomla 4 BS2 can then be removed. If BS 5 comes up, then we can easily introduce it in the core and create layouts for it.

Additionally, the transition to a new frontend framework library like foundation would be then much easier. How such a transition layer can look like is described in this RFC pull request. We made a 100% backward compatible proof of concept with a new Joomla BS3 template in Joomla 3 without any override. It describes one possible way. I'm sure there will be others, all will have their pros and cons. But now is the point to find a unified way to deal with that problem for template devs, site administrators and extension developers. The mess becomes bigger with every new major version of Bootstrap as we have a battlefield already with BS 2 and BS 3.

Conclusion

The problems I'm describing here are real world issues, we at Digital Peak are facing them on our daily business. Talking with site integrators, other extension developers, template devs or just Joomla users, all do suffer from the bootstrap problem in Joomla. It is up to us to provide a way to deal with this situation properly, NOW! Joomla 4 is around the corner and according to the roadmap, the last minor version where we can introduce such a transition layer will be version 3.8. So lets do a decision!

Important is that we learn from the past.

 

joomla love