Web Content Management Systems (CMS) fill an important role in the process of managing a website – they enable subject matter experts to alter text and images on a webpage without the need of a web developer. This can lead to reduced overhead and lower costs associated with website updates. Subject matter experts utilize CMS features such as What-You-See-Is-What-You-Get (WYSIWYG) editors, similar to Microsoft Word, to update web pages. The following is part one of an ongoing CMS series where we’ll explore features of several web Content Management Systems.
CMS and Complex DataSometimes changes to a website are more involved than a content author can accomplish with their built-in site editor. Perhaps they want to customize the layout of several images, or change how the page template looks. These tasks might require the skills of a web developer because they are too complex for the CMS. For instance, let’s take a university website. One page of the site might be an Events Calendar. Each event consists of fairly basic information – a Title, Date, Time, Location, Teaser, etc. Let’s assume that a University Administrator would be managing the Events, so using a CMS would be appropriate for this page. Let’s explore the process of implementing the Event Calendar in a CMS. First, let’s take a look at our final goal – the design of our Events Calendar.Looks fairly straight-forward - we have several Events, each listing the important attributes of the Event. Let’s take a peek at the HTML that will be used to display one of these Events.The HTML for each event is fairly involved – there are a number of different styles and layouts applied to the elements that make up the event, and each needs its own HTML elements, CSS classes, etc. Fair enough - let’s try managing this markup via the CMS.
What You See Is What You Get (Sometimes)Below is how the CMS displays this HTML in its WYSIWYG editor.Well, this looks fairly close to the webpage – we have all of the data in a familiar layout. However, the editor doesn’t clue us into the actual structure of the markup. For example the “Jul 17” line is actually an <h2> composed of two <span> tags – one for the month and one for the day. Perhaps the content author selects the entire line and replaces “July 17” with “Aug 1”. Everything looks good in the WYSIWYG editor, but unbeknownst to the author, the two <span> tags have been deleted! If the author were to save their changes and view the live webpage, the date wouldn’t be displaying correctly. It’s very difficult to maintain the correct HTML structure in the WYSIWYG editor. The editor hides the details of our markup (this is after all, the goal of a CMS – to eliminate the need to delve into the details of HTML and CSS). However, the problem the WYSIWYG editor introduces is that despite these details being hidden, they are still quite important. Without them, we will end up with a broken page. The editor has introduced a leaky abstraction – it hides the complexity, but doesn’t eliminate the need to manage that complexity.
Structured Content Data with Ektron SmartformsSo, where that does that leave us? Well, we could ask the University Administrator (our content author) to switch to the HTML view and modify the markup directly - but that’s exactly what a Content Management System exists to avoid. Or, we could introduce another layer of abstraction – instead of storing our data as HTML, we could store it as simple Event Properties. For example, we would store the Date, Title, Time, etc. each individually. This raw data could be stored outside of the CMS using a custom database, combined with dynamic pages to automatically generate the HTML. The downside: our administrator must now work in two separate systems, plus a developer has to design and build the database, the administration interface, and the dynamic pages. Again, a primary goal of a CMS is to avoid this type of work. It introduces complexity and additional costs. Some content management systems support a concept of “structured data” in addition to standard HTML content. For example, Ektron has a feature known as “Smartforms” that manage structured content as XML. XML is a means of representing data as text, typically as a series of Key – Value pairs. With XML, we can store our Event Properties separately of the HTML used to display them on the webpage, as seen below.Ektron enables a developer to define an “Event” Smartform by stating that an Event consists of variables such as a Title (text), Date (date), Time (hours and minutes), etc. These properties are defined as text fields, multi-line text fields, date fields, dropdown lists, Rich HTML editors (WYSIWYG), etc. Let’s say our Event smartform looks like this:Utilizing the form created by the developer, a content author can populate Event data into the CMS. They would enter each event with the title, start & end date, etc. The author is simply filling in the fields of the Smartform – there is no danger of inadvertently corrupting the HTML, and doesn’t require the support of a web developer.We’ve also taken care of several of our other concerns - a developer no longer needs to build a custom database, nor an administration interface. The content author no longer needs to work with two systems – they may manage all the website content inside the CMS. We have yet to discuss the last step of converting the Event data (stored at XML) into HTML to be displayed on the web page. This process can be accomplished in numerous ways, which we’ll investigate further in my next post. We’ll take a look at XSLT style sheets, .NET Xml Parsing, Object Deserialization with XML, and more.
Structured content for complex dataTo recap, we’ve shown that despite the many advantages of content management systems they can still struggle to handle complex data. The WYSIWYG editor leaves much to be desired when working with complex markup, necessitating a content author to modify the HTML directly. A custom database and administrative interface resolves that concern, but requires a significant amount of time and effort from a developer. An excellent solution to these problems is utilizing structured CMS content, such as Smartforms provided by Ektron. Structured content enables the content author to focus specifically on managing the website’s content and data, without the need for support from a developer.Stay tuned for future posts where I’ll explore
- Sitefinity: A Focus on Personalization and the Mobile Web
- The CMS Search Quandary (Part 1)
- Generating Dynamic Web Pages from Structured CMS Content
- Structured Content Search with Ektron’s Search API