CMS java style
I've been deeply involved in a web site rollout. At The University of Akron we are building out a new website after an architectural review and site re-design. The myriad of detail and planning that goes into a site rollout for a large University website is amazing. At the same time it is frustratingly slow going. We are moving to a new content management system on top of everything else. That both helps and hurts the process. It hurts because it is another level of discovery and testing that needs to take place while we are adding content to the site.
We decided to go with a product called DotCMS. It is an open source java web application Content Management System. After performance tuning the application we have it running quite well. That seems to be half the battle. Then learning a whole new way of building a site comes with that. But the pure joy of being able to utilize and re-use content from different areas of the site are strengths of the application. Content (or contentlets in DotCMS speak) are like blocks of html snippets that can be placed into templated pages and reused anywhere else on the site. Since we have a lot of overlap in various parts of the website it is nice to have content that can be managed by one person or group that will automatically update in other sections once it is updated. Not only can the containers on the page hold html fragments, but also velocity macros and variables. Apache Velocity is an open source project and allows for server side java scripting to be embedded into web pages much like you can do with php.
DotCMS also has a powerful permissioning scheme. All contentlets can be permissioned to certain roles so users logging in can be given read write and publish access based upon the roles they have been assigned. Contents can be entered into the site based upon definitions that the web designers and developers build out through what are called structures. For my own understanding, a structure is a little like building a front end for entering data. There is a structure builder that lets you define different field types. Then that structure can be assigned the proper permissions to a role and that controls who can enter that type of content. For example a news item has a headline, description, publish date and body. The content provider enters those fields and then based upon permission can save or publish the content. If they cannot publish, they can assign the content to a publisher, who can review the content and publish it. A task manager built into the system allows for assigning tasks to various editor and publishers listed in the system.
We have built out some applications inside of DotCMS and we would like to do more of that. We have identified some things we would like to see built into next releases of DotCMS to make this process easier. We were able to sort of trick the structures into using javascript so we could do ajax table lookups to populate fields based upon pull down selections. We've requested that be an official part of DotCMS sturctures. Currently, you can build forms to be used on the front end, but DotCMS has it's own form handler and a defined data repository for that data that is entered. The data can be downloaded as a csv from the back end. We would like to be able to build our own structures in the system and have the front end forms populate the structure we define so we can have more control over the use and reporting of the data.
Moving forward, we'll most probably push the envelope with this application. Being in a large institution we'll be looking for implementation solutions. DotCMS is a lot closer to handling these problems in a uniform way, so we don't have to custom build solutions constantly.
If you are reading this in early July, hopefully you will visit www.uakron.edu in the near future, when we will be rolling this site out. If you see the page extension with a .dot on the url, then you will know you are looking at content being served by DotCMS


