technical caldav

In the second article of this series, I've written about how you can start using and deploying the WebDAV (and CalDAV/CardDAV) on your own systems, whether at the OS level, or at the CMS level (which Joomla! and Drupal, for instance, are capable of). In this post, let’s take a look at the technical aspects of the various extensions to HTTP; what their pros and cons are, and how you can use them at their best.

The first thing to understand is that from a technical perspective, WebDAV and all its derivative protocols are not APIs. That is to say, they do not specify how the protocols are implemented at the application level; merely how messages sent across the ‘wire’ (the Internet, in this case) are defined. The task of implementing a protocol, therefore, is comparatively simple, and it implies that any WebDAV client should be able to inter operate with any WebDAV server, regardless of platform (so a Joomla WebDAV client can exchange messages with a Microsoft IIS WebDAV server).

Unlike its own extensions CalDAV and CardDAV, WebDAV does not specify any specific format for the content that is transmitted across using the protocol. For CardDAV, the calendaring and scheduling information is required to be in the iCalendar format, while for CardDAV, contact details are required to be in the vCard format. This greatly simplifies the task of interpreting the information being received over the two protocols.

Like most other Internet application protocols (and their ‘parent’ protocol HTTP), WebDAV, CalDAV and CardDAV are all text-based. What this means is that all the commands and server responses are specified using text, rather than binary code. This is very much in line with the UNIX philosophy of keeping things text-based as much as possible (not surprising, seeing that the Internet uses the UNIX networking protocols TCP/IP), and means that most text-based tools can be used to work with WebDAV and its extensions, and any session logs would be human-readable.

This does not, however, mean that (like email) binary data has to be encoded in a text format. Because HTTP, the parent protocol, supports the direct transfer of binary data from server to client, WebDAV, CalDAV and CardDAV also supports the same – although in the case of CardDAV, since the underlying vCard format only supports binary data in the form of Base64-encoded text, it’s not very relevant. Similarly with CalDAV, where the iCalendar format also only supports the same thing. However, since WebDAV is often used as a network file system (what would today be called cloud storage), it fully uses HTTP’s ability to send and receive binary data.

caldav connect

Network protocols are used to transfer data between potentially different computer architectures. They describe and standardise the format in which the data is transferred. On the Internet, several major protocols include the File Transfer Protocol (FTP) used in transferring files, Simple Mail Transport Protocol (SMTP) used in sending emails to the email server for transmission, and Internet Message Access Protocol (IMAP) for retrieving emails from the email server.

And then there’s the HyperText Transfer Protocol (HTTP) – and its secure variant HTTPS – which is the underpinning of the modern Web. From the simplest website to the most complicated Web application and even Joomla! itself, the underlying protocol used to transfer all that data is HTTP. Its versatility is quite ubiquitous yet extensible, and over the years, a number of protocol extensions have emerged.

WebDAV, or Web-based Distributed Authoring and Versioning, is one of those extensions. Originally designed to enable multiple people to collaborate on a single website (hence the ‘distributed authoring’ part), WebDAV has since become so much more. Indeed, one of the most popular uses for WebDAV is to support filesystem operations over HTTP; a classic example of which would be connecting to a cloud storage service and making it appear as a standard network drive/folder.

WebDAV is itself extensible (its versioning capabilities are implemented in an extension), and its collaborative features make it perfect for other purposes which require coordination, such as scheduling. This is where CalDAV comes in. Short for ‘Calendaring Extensions to WebDAV’, CalDAV allows multiple users (or multiple devices of a single user) to share the same calendar; changes made on one device or by one user will be reflected across all of them.

All of the DAV protocols are open standards (and are detailed in various RFCs), which means anybody can use them and write software that implements them. Today, most open methods of synchronising files and folders rely on WebDAV; similarly, open online calendaring systems also use CalDAV for synchronisation. Another WebDAV extension, CardDAV, is used to synchronise address book contact information using the vCard format, enabling a full PIM experience with software that supports both CalDAV and CardDAV.

But WebDAV and CalDAV can do so much more than sync. Collaborative features in both protocols enable you to connect multiple users to a shared workspace, plan meetings, share information and resources globally, and in general, act as a single team regardless of wherever you are in the world.

But how does one go about using WebDAV and CalDAV (or, for that matter, CardDAV)? That will be explored in an upcoming post.

dpcalendar 5Digital Peak is pleased to announce after some time in beta, the latest major release of DPCalendar, one of Joomla!’s most highly-rated calendaring extension, is ready for download from our download portal. We spent a fair amount of time to build the biggest release in the history of DPCalendar. We would like to say thank you to all the people who were testing the beta releases and provided valuable feedback during that time. We at Digital Peak are really impressed to be working together with such an amazing community. Here, we explain some of the most salient features in DPCalendar 5.

Support of Joomla 2.5 has been dropped

As per our EOL support policy, DPCalendar 4.x is the last branch that will be supported on Joomla 2.5; the new DPCalendar 5.x will only be supported on (at minimum) Joomla 3.3 – we do not recommend you install it on earlier versions of Joomla. Dropping support for Joomla 2.5 allows us to implement features from the Joomla 3 series which we can't add if we were to continue supporting Joomla 2.5. As noted in the EOL policy, we will still ship minor releases if critical bugs will appear or security issues are discovered.

dpcalendar 5 j25

New configuration UI

There are several new configuration options that can be modified in a more user-friendly fashion, instead of having to manually do layout overrides. We went back to plain PHP code for some of the most important views and modules. This means we will be able to do more advanced stuff in the future, as it would be possible with the mustache based approach. Additionally, we moved some of the code pieces to layouts which would allow the site admin to override only specific parts of the DPCalendar output (instead of using full template overrides). Check out the layouts folder on administrator/components/com_dpcalendar/layouts after you have installed DPCalendar 5.0.

dpcalendar 5 options

Improved schema support

Rich data (or microdata) support is becoming increasingly important in making your sites more accessible – and comprehensible – to the various search engines out there. Rich data are additional information attached to your site’s listing on the various search engines’ result pages. This means it will draw attention to your listings in the search engine results page. The new version of DPCalendar better supports the microdata formats as laid out by schema.org. For example, we support pricing of events now. For more information please visit schema.org.

dpcalendar 5 schema

Timezone switcher

You can activate a time zone switcher in the DPCalendar configuration that the visitor can use to switch to his preferred time zone when browsing events. As various governments modify time zones (and DST dates), the time zone switcher will be updated accordingly.

dpcalendar 5 timezone

Event history tracking

Since Joomla 3.2, it has been possible to track the history of edits of an article. We’ve adapted this feature to DPCalendar events. Initially, this feature is disabled. In the DPCalendar options, you can turn it on and configure how many revisions should be saved per event.

dpcalendar 5 history tracking

Support of Joomla tags for events

In Joomla 3.1, tags have been introduced. This means extensions can support tags through the UCM layer of the Joomla core. DPCalendar has connected its events to that layer and offers a field in the event edit form to attach tags to the event.

dpcalendar 5 tags

Multiple event images

DPCalendar 5.0.0 now allows you to attach up to three images per event. This adds what has been a longstanding feature request for DPCalendar. For every image, caption text and alt text can be defined to improve SEO for the event images. A demo can be seen on our demo page.

.
dpcalendar 5 images

Some more interesting features

    1. Blog layout support
      DPCalendar 5.0.0 comes with a blog layout for upcoming module as well as a new blog menu item, similar to Joomla articles. The new layouts will show more information than the existing ones.
    2. Better Facebook support
      When integrated with Facebook, DPCalendar can now display Facebook event covers as the event image(s).
    3. Default centres for maps
      As the title says, default centres can be specified for all maps within DPCalendar. In an earlier version of DPCalendar, the users location was taken, but since Maxmind closed its public API, we have to go that way.
    4. Content plugin
      As with every big Joomla extension, we come with a content plugin. You can now include code like {{#events calid=42 limit=3}}<p>{{title}</p>{{/events}} into your articles and the upcoming events will be displayed.
    5. Improved CalDAV access
      If you need to export native DPCalendar calendars to your CalDAV clients, you should notice better CalDAV support from DPCalendar.

As always, there are many other enhancements and bug fixes. DPCalendar 5.0.0 is available in both free and paid versions on the JED. As this is a new major version which will break backward compatibility and makes your template overrides obsolete, we expect small bugs here and there. We will have our ears close to the support platform to react fast to any issues and ship the fixes on a fast pace (which is what we do anyways).

If you want to purchase a subscription, you can use the following coupon code and you will get 25% discount. It is valid till 30. April 2015, so hurry up.

DPCALENDAR5

We hope you enjoy the new version as much as we do, because you can expect from us big things in 2015 as we have plans to develop extensions which will turn your Joomla site into a full featured Dropbox-like site. More information will come in Q3 of 2015.

Best Regards

Allon Moritz aka laoneo
Founder of Digital Peak

 

jed searchIn a previous post, I covered the Joomla! Extensions Directory (JED) to some degree, highlighting why the JED makes sense for both developer and user. In this post, I intend to go through some ways in which a Jooma! website owner can take full advantage of the JED’s various elements in order to make appropriate decisions about what extensions to install on the website.

Directly search specific extension

The JED has a pretty useful search engine built in, so if you know the specific extensions you want to install for your Joomla website, this is your first port of call. Not only does it work if you have the exact name of the extension, but it also allows you to narrow down your search parameters by extension type (component or plugin or module), the version(s) of Joomla you need compatibility with, whether it is a free extension or a paid one, and whether it has a demo so that you can see it in action before installing it. The resulting extensions can even be sorted using various criteria (alphabetically, by date of update, rating etc.) albeit only by a single criterion at any time. However, the search engine is not the smartest one around (for example, it will not recognise ‘multifactor’ if you meant ‘multi factor’), so you may need to slightly tweak your keywords now and then.

Browse by category

If you don’t know which Joomla extension(s) you want by name (or by any other distinguishing factor e.g. developer), the extensions are also listed in the JED according to various categories. In practice, this actually just pre-filters the extensions by a specific category (which can then be further narrowed down by using the above search parameters and sorted). Alternatively, you can browse the top rated extensions, those that were reviewed the most times, and extensions that were recently submitted.

Deciphering the extension entry

The JED is a database, and so various metrics can be (and are) stored and processed. You can use some of the information displayed to give you a better understanding of whether this extension is for you or not. Some information that could be of key value to you are the reviews, the date the extension was last updated, and whether it is a free or paid/commercial extension.

Reviews give you an idea of whether a given Joomla extension even works (and whether it is likely to work across a wide range of installations), as well as provide some historical insights. It can also indicate whether the developer is inclined to listen to its users or not. So reviews can be a primary source of information on the extension. An extension that is frequently updated will show up closer to the front/top when people search (and sort) by ‘last update date’. And by comparing free extensions to paid ones, you can tell which ones give you better value.

Here’s an example of how you can use the information presented to your advantage. Digital Peak’s DPCalendar Lite and DPCalendar Joomla extensions have separate listings (as one is free and the other is paid). We do not provide free support for our Lite offering, so you can imagine that we will get some negative reviews on this matter, as indeed we did. However, the reviews for our paid extension are uniformly (and glowingly) positive – which stands to reason, because our support for our paid users is top-notch and we spare no expenses in drilling down to the problem(s) they may be facing.

How was it in the past

As I posted my first extension in the JED (the successor of DPCalendar -> GCalendar) you could just brows the JED and the ratings have been numbers between 1 and 5. The people appreciated the work of volunteers and posted mostly positive reviews to express the work of the developers. Everything was more relaxed than it is nowadays. As developer you felt motivated to publish your stuff for free.

jed unpluggedWhile the Joomla! CMS is quite a comprehensive package, most of its power lies with its high level of customisability. As with all other software platforms, Joomla is designed to allow other programs to run on top of it, exposing a series of API calls for the convenience of such programs. OSes have applications, WordPress has plugins, and Joomla has extensions. So where does one get one’s hands on the various programs that run on top of a given platform (in this case, Joomla)?

There have traditionally been 2 schools of thought on this; the wide-open sandbox (let’s call this the ‘Microsoft’ way), and the walled garden (let’s call this the ‘Apple’ way). Microsoft has always been more than happy to fully document the Windows API, allowing everybody and his brother to write applications that will run on Windows, a trend that continues even into Windows 10. These third-party bodies, called Independent Software Vendors (ISVs), will then sell, rent or freely distribute their applications any way they can. By way of contrast, Apple has always wanted stricter control over who can write applications that run on iOS, restricting all of its devices that run iOS to applications that can be found in its App Store.

As an open-source product, Joomla is generally considered to be free (as in speech) software. As such, there are no such restrictions laid on what kind of extensions you can run, or where you can obtain them from. However, the developers of Joomla did set up what they call the Joomla Extensions Directory, or JED. The JED is a repository of many (if not most of the) Joomla extensions, including some of the most popular ones. It represents a level of assurance that the extensions listed on it have been curated to some degree, and are more likely to be genuine.

Why use the JED? For users, this is a no-brainer. The JED provides comprehensive information on all the extensions listed, from the Joomla versions supported to user reviews (and developer replies). It represents a central location from which a user can download their desired extensions to enhance the functionality of their Joomla installation all at once.

For extension developers, the issue is slightly more nuanced. For instance, only GPL-licensed extensions may be listed in the JED. If you’re using the BSD licence, or the Apache licence, or (gasp!) your own proprietary licence, it’s not welcome there. Additionally, commercial extensions are given more scrutiny (especially in terms of user reviews). On the other hand, there are a variety of tools and checklists that can help you ensure that your extension(s) are JED-friendly – which generally means that they will work on the vast majority of Joomla installations.

In our next few posts, we will take a closer look at the JED. In the meantime, here are a few things you might want to keep in mind when submitting anything to it:

General guidelines for submitting extensions to the JED

GPL and other licencing restrictions

Is your extension free or commercial?

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