Content Management Systems (Prelude to MODx): Part I

Introduction to Web Sites, CMS’s, and MODx

MODx lets you take control...
MODx lets you take control...

Some of you may remember the little article I wrote a while ago about content management systems where I shared a bit about MODx. What is MODx? (pronounced like “modular”… and it’s eXtendable… get it?) It’s a content management system (CMS), and it’s used to help you manage and publish web sites easily. It’s very cool, and it is very flexible… but I’m getting ahead of myself. I want to spend some time with our readers and talk a bit about web sites and CMS’s and use that discussion to segue into an upcoming video series about MODx. If you already know what MODx is and you want to learn about it, stay tuned for the upcoming videos… if you want to read a nice walk-through, check out NetTuts recent article.

Web Sites 101

If you’re reading this, you should have some idea of how this is happening… in the interest of the stringent word count limitations imposed by… uh… Brian (?)… I’m going to assume that you understand the concepts of a domain name, a web server, and how a traditional request such as “http://www.tipsfor.us/some_page.html” is handled and a page is read and returned to your browser. You with me? Great.

Higher Education: Dynamic Web Sites

A static site grabs a file from a folder and displays it to the browser, whereas a dynamic site operates a bit more like the “printing on demand” technology. Many sites (including this one) rely on dynamic technology to serve up a page… the page that you are requesting may not even exist until you request it. The “page” that you end up reading is often assembled on the fly from a series of scripts and bits of text from the file system and/or from a database.

Making Web Sites: The Perils of Static Sites

Coding Sites by Hand is Perilous
Coding Sites by Hand is Perilous

We all start out bald and naked, filling diapers and making static web sites. As you get older, you learn a little more HTML, and your “<h1>Hello World</h1>” progresses to animated GIFs and maybe some CSS and Javascript, but some people take a long time to mature out of static web development. And not unlike growing up and leaving home, there’s a profound turning point in your web education that propels you out of static land. Let’s say you want to change the name of one of your pages from “articles/cool-stuff.html” to “articles/archive/cool-stuph.html”. You have to move the document and change its file name, then you have to wade through all the pages on your site and update any links or menus. It’s only palatable if you have a few pages. If you have more than 10 or so, this scenario quickly becomes cumbersome and prone to error… you’ll be wanting to ask mom to do your laundry.

Another not-so-hypothetical situation arises when you want to change the look and feel of your static site. If you’ve followed the rules of semantic web development, you’ve separated your content from its formatting using CSS files and well formed HTML (check out CSS Zen Garden), but it can still be tricky if you’ve got to change Javascript files to make menus work. And you still have to know a lot about HTML and FTP logins to make these changes.

Enter Content Management Systems

If your own learning curve of web site development has roughly followed the previous descriptions, then you can appreciate that someone found a better way to do things. You can have your cake and eat it too.

Benefits to using a CMS

  • — Isolates content from formatting (it’s much easier to search content and update templates)
  • — Editing content is easily done via a GUI
  • — Roles and permissions can be established: e.g. an editor, an admin, a blogger all can be allowed to do certain things to a site.
  • — Links between documents can update automatically (with most CMS’s)

A CMS allows you to forgo the FTP client and use a front-end interface so that users can edit documents and templates. A CMS usually has editing tools built right in, so you don’t even need to know HTML to edit the content of a page — this is great if you’ve built a site for someone else. You can be the HTML genius, but you can give them the key to the CMS and they can edit and add content all day long. Finally, a CMS provides the ultimate separation between content and its formatting. This means that the text of an article can be fully isolated from the template used to display that article, and then the task of switching layouts for an entire site of thousands of pages becomes a trivial affair. Changing the “location” of a file or its name is also dynamically rendered so it can be done in an instant. These are the benefits to running a site using a CMS.

Down Sides to CMS

  • — Complicated to set up. Math is hard! Let’s go to the mall!
  • — It’s more resource intensive. Serving up flat files is much easier for the web server.
  • — More complicated server requirements: not all hosts will have a scripting language and database available to you.
  • — More bandwidth is required.

A site running a CMS is almost never as responsive as a site simply serving up static files. A CMS has many more moving parts, so it’s more likely to break or be attacked. You can’t do much to thwart the display of a simple HTML file, but you can experience all kinds of malicious attacks on a database an your scripting language of choice.

In my opinion, in most circumstances, the benefits often far outweigh the drawbacks. You make some extra backups, you take a few extra precautions, and bamm… you can be pimping out your web site in CMS style, and once you’ve done it that way, you’ll never go back.

So now you know why you might want to use a CMS for web site development. In the next article, I’ll discuss why you might want to choose MODx over some of many other systems available. Lots of systems will alleviate some of the pain and stress of static development, but not all Content Management Systems are created equally. The dudes working hard on MODx have made a really cool application that makes life so much easier for developers and content editors, and one of the founders asked me to upload some high resolution videos about it. Thanks guys. Stay tuned…