Plone in the Enterprise: Two Killer Features
Two weeks ago, we had a stand at Internet World in London. One thing that happened quite bit was people came up to us asking 'So I've heard of Drupal/Joomla, what does Plone offer?' and I would explain to them about some of the features Plone has making it ideal for deployment and integration in an Enterprise. I was going to write up about some of these points, but didn't get a chance to until now as something has pushed it back to the front of my mind again:
I've just been in a case study presentation of the Honda Italia Intranet at the European Plone Symposium in Sorrento. They have built a fantastic intranet in conjunction with Abstract Open Solutions. What was great to see was the process they went through in ending up using Plone. They worked with a consultancy firm who helped them to work out what their Intranet requirements were, and what they needed to be able to do.
They went through a very thorough process involving chatting with over 100 stakeholders in the organisation directly, and getting about 1000 staff to respond to a survey on what was going on. Card sorts were done, IA maps were drawn out, requirements prioritised. Only after all of this did they start looking at Content Management Systems and after doing a comparison of three Open Source and three Proprietary systems, they chose Plone.
I'm going to present just two specific killer features Plone has that sets it way above some other CMSs, both Open Source and Commercial.
Something that Bruno Ripa from Abstract talked about in the presentation was Honda's complex authentication requirements. Well I say 'complex', but in fact from our experience its actually pretty normal within any large corporation. Their user authentication was spread over three active directory systems, one LDAP server, one SQL server, and a web services system. They needed to be able to combine all of them to provider all of their user information to their intranet -- a requirement that put quite a few, even large commercial, CMSs out of the running.
Plone is built upon Zope which allows us to us Zope's Pluggable Authentication Service (PAS). It is a powerful and flexible system that allows you to have separate (and multiple) plugins to handle all the different aspects of users. There are in total about a dozen different steps that plugins can be used for, but just a few of these steps are:
- Extracting credentials from the user
- Authenticating the user
- Storing and managing properties and information about the user
- Searching and listing users and groups
- Assigning users to groups
This allows you to easily configure Plone to fetch information about a user from a multitude of sources around a corporation. You could authenticate them against several sources, and then fetch information about the user from a multitude of other places and combine them all.
Its flexible enough to allow you to use a variety of PAS plugins each to do the specific functions you want without having to use all or nothing. It also allows you to take the majority of your information from a central corporate source but then override or augment some of the information from a local source. Great for when you want your intranet to store some specific additional data on your users that is not suitable to go in a central source (or the powers that be won't let you!).
For more detailed, technical view of this and how we use it in a real example, see this blog entry on PAS.
Another really killer feature for Plone that is lacking in quite a few CMSs is the ability to support and manage multilingual content.
By default Plone comes out of the box translated into over 50 different languages, and has a very simple system for allowing 3rd party developers and site customisers to provide translation strings for their products. An add-on for Plone called LinguaPlone provides a simple mechanism for creating and managing translations of pieces of content in your site. Once installed you simply choose 'Translate into...' and pick a language. Plone will then create a copy of your piece of content and present you the two versions side-by-side ready for translation.
The contents language variants are linked together and even if you move a piece of content to somewhere else in the site it will remain linked to its translations. This allows you to have different site structures for different languages, but still easily switch between languages of a piece of content.
This product can simply be added into Plone at any stage of a site's life and viola! you have multilingual content support with a minimum of hassle. This means unlike with products like Sharepoint, you don't have to plan ahead to use multilingual features from the outset, and it allows you to translate an entire site, or just a few pages as necessary.