In my previous post, I outlined some extensions to HTTP, the core protocol over which all of the World Wide Web – including the Joomla! CMS – operates. We’ve taken a brief overview of WebDAV, CalDAV, and CardDAV; their intended purposes, the features they present, and some of the real world areas in which they come in handy.
So how does one start using WebDAV or CalDAV? Riding on top of HTTP as both protocols do, they inherit the client-server architecture of HTTP; hence, both client and server applications are necessary to make it work. For WebDAV, clients are already built into most modern desktop OSes; Windows, OSX and Linux natively treat WebDAV shares as network drives/locations.
Additionally, the OSes mentioned previously, as well as both iOS and Android, have WebDAV clients available for download from their respective app libraries. WebDAV servers (e.g. IIS, Apache) and 3rd-party services (e.g. StorageMadeEasy) are also widely available for most modern desktop and mobile OSes. It is also possible to implement WebDAV functionality into a CMS like Joomla (and, in fact, has been done more than once), so it’s quite versatile.
Whether using WebDAV via a native client or via a 3rd-party application, it is always good to check and see whether both the WebDAV client and the server support HTTPS, or secure HTTP. You will be logging in to the WebDAV server using a standard username/password combination, so secure access will be a priority – especially if you are using WebDAV for collaboration on any sensitive work.
Further, WebDAV usually operates over the standard HTTP ports (80 for standard HTTP, 443 for HTTPS), unless the server was configured differently. If you are operating your own WebDAV installation for access to your private files, you might want to consider changing the default ports as well, to further increase security.
For CalDAV (and by extension, CardDAV), the situation is slightly more interesting. On Linux, both client (e.g. Mozilla Thunderbird) and server (e.g. Apache with mod_caldav) applications are readily available. While Apple’s iCal app natively supports CalDAV, Android’s Calendar app does not; you will have to download a CalDAV app from an app store. In addition, neither Windows Live Mail nor Microsoft Outlook supports CalDAV, either as a client or as a server; and getting CalDAV support without paying for it is no easy task. Luckily, other FOSS calendaring software for Windows that support CalDAV do exist. On Windows Phone, both CalDAV and CardDAV are supported for certain specific services, and others can be added.
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.
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.
Digital 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.
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.
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.
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.
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.
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.
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.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.
.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
In 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.
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.
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.
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.
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.