I have been searching for an ideal cms (Content Management System) for few days now.
I would prefer finding a java based solution for it should closer to the technologies i am using though it is not an obligation.
So here are my my user experience conclusions. But I have not finished yet!
- Joomla (php)
Joomla is done in php + MySQL. Very easy to install.
The community is strong. You can easily add new components with Add-ons. The most important is probably Joom!Fish which is the best multi-lingual Add-on.
It is very easy to edit and post articles. Except maybe the relationship section-category which is not very explained enough in the documentations.
The default editor used is TinyMCE but it can be changed to other ones. But the image-insertion is not very easy. But it seems that the next version (1.5) will resolve this.
The administration pages are simple and well distributed.
There are many page templates (free or quite cheap!) and you can change the web site skins very easily.
I think it is a nice experience even for a pure java developer
Another CMS very light but even easier to use is plume cms…
- Plume CMS (php)
The easiest CMS approach I’ve ever seen. In the first 5 minutes you can add a menu with pages.
The online editor is user friendly. It does only that but it does it well!
- Plone (Python)
Well documented. The user interface is very nice: editor with image processing.
- Infoglue (Java)
Easy to deploy. I really think that it is a nice project but the first steps are very difficult.
And the documentations are not efficient enough… I would suggest you to begin with the tutorial in video!
The aim of the hole project is to separate the content from the structure.
You can add your own components that are configured by using some velocity scripting.
The beginning is very slow but it is quite powerful. You can specify configure a template for your component and then use it anywhere you want by putting the content in the right folder.
The problem comes when an exception is thrown or there is one parameter which has not been correctly filled!
The default package does not include French language.
A nice project but diffcult to understand and configure. Needs time.
- Alfresco (Java)
It is mostly an ECM (Enterprise Content Management). It is well organized and seems to have interesting access rules facilities.
- Exo Platform (Java)
Different products which work together with a protlet concept:
Exo Portal which contains some Web Content Accessibilityand Enhanced Security. The hole webpage content (navigation menus, news, etc.) depend on on the user role and profile.
In Exo Portal, you can add containers and portlets.
EXo portlet container service is a facade to the portlet API.
Exo ECM which is the content management component.
The documentation is not well organized and sometimes does not existent at all! For example, I lost some precious time to launch the applications… just because it is not written anywhere that you should not use the classic “startup.bat” for tomcat but a certain “exo-run.bat”.
- Liferay (java)
As Exo portal, one of interesting aspect in Liferay Portal is the portlet concept. The back-office is maybe more flexible compared to Exo portal. In my opinion, the Exo Platform architecture seems attractive but the first approach you have in such case is the first sample, where you are supposed to compare different aspects.
In this case, I should admit that I felt much more comfortable with Liferay’s sample:
If it is not that easy to configure from scratch your website (for you need to know more about the portlet architecture or dependencies), at least you can alter the current website components, add/modify news, articles, etc
The most efficient opensource portal in my experience is Liferay.
Many documentations (many video tutorials for the user part) give you the explanations you need. The sample with tomcat is the liferay.com website. The fact that it is the hole website is much more interesting than a simple “hello world”!
In Liferay 4.2.x, the pages are OScached, so the display is fluid. During the website annd portlets development, you will have to make sure about how to deal with the server cache. Make sure that the display is really what you have: for example, there is a css_cached.jps which is OScached whereas css.jsp. So during the development, I put the hole content in css.jsp.
In Liferay 4.3.x, the theme pages are written in Velocity (*.vm). So the pages are really nicer to develop.
The portlet behavior seems very interesting. The added value is that the licence is so opened that you can modify the code for your purpose, modify the basics portlets etc and apply the changes from one website to another.
The portal is divided in two seperate website projects which you can add in your EDI workspace (I use Eclipse): one is “portal” and the other “ext”.
The first one contains the hole project packages and files. The second one is where you will develop your extended components. It can contain nearly anything: your own themes (look-and-feel), page layouts, structures (page content types)… One thing quite annoying is that the default page generated are not xhtml compliant. Then, it is quite easy to configure the projects to clean, start, build, deploy etc. (ant tools).
Conclusions : I don’t think there is one CMS portal that is the perfect one but I beleive that regarding to the technologies used and the functionalities policies, some solutions are much more efficient than others. Liferay is probably one of those.