Thursday, July 16, 2009

Web Developers, Meet the Content Management System

By Tyme

Let's face it, web developers, web content management systems (CMS) are here to stay. Not to worry, there remains room for designers and coders in the world of CMS.

For the sake of brevity, this article will focus on the free (i.e., open source, GPL, GNU licenses) software -- Drupal, Joomla, Wordpress are three of the more popular of the bunch. After all, the open source are the most fun and challenging for developers, as you can show off your mad programming skills by contributing your own, or contributing to, custom plugins referred to by the various applications as modules, components, extensions, plugins.

As with any Web project, it is important to first identify the intent of the Web site and the client's needs. If your non-techy client is interested in generating and publishing their own content, you are on the right track with a CMS. So, onward.

Are they interested in creating a simple blog, a factory of client-managed multimedia content, or a community site (social networking)? Don't forget the oft overlooked use, intranet. CMS makes a great intranet!

What is a CMS?

Wikipedia describes it thusly: "A 'web content management' (WCM) system is a CMS designed to simplify the publication of Web content to Web sites, in particular allowing content creators to submit content without requiring technical knowledge of HTML or the uploading of files."

From a developer's standpoint, a CMS is digital Lego's. A foundation ("core" code) and predefined building elements that you can manipulate to your heart's desire without even getting your coding hands dirty...unless of course you want to. Because it is "modular", you can easily expand the scope and functionality of a site through plugins (a/k/a "modules", "components", "extensions", "plugins").

Why Use a CMS?

Well, let's just say, not because of coder laziness, although there is that. As a site builder, you need nothing more than great CSS chops, and a solid understanding of best practices. No need to script from scratch; but, if you are a PHP coder, the CMS world is your oyster. (Sorry ASP programmers, there's not much to see here, except DotNetNuke.)

Key reasons to use a CMS include:
  • Client wants control over content creation and publishing, including uploading of images and files, and a WYSIWYG interface.
  • Client wants public and private (registered user) sections of a Web site.
  • Client wants visitors to be able to interact with the content.
  • Client wants rotating, blog style content display - for example, front page article summaries with 'read more' links.
  • You, or client manager, want integrated Web administration control of site.
An ancillary reason is that you enjoy being part of such a large developer community. A fraternity (/sorority) of people who enjoy building and sharing great new modules, improving great modules, and appreciate great modules. Hundreds of thousands (probably millions) of volunteers around the world working to make a product better, every single day. Well, that's open source, for ya.

On this note, there certainly are developers profiting from these contributor modules. Some sell their module code directly, while others are sponsored by a company to build a custom module, which then often is made available to the community. The same is true for CMS templates or themes. So, you need not think of developing for CMS a waste of time.

NOTE: In the CMS world, the term developer tends to mean module programmer, whereas a site builder is referred to as a designer or themer.

How to Choose From Among Content Management Systems

The decision of which CMS to use will be dictated, in large part, by the intent of the Web site. While there are many free content management systems (see Wikipedia's quick glance table: http://en.wikipedia.org/ wiki/List_of_content_management_systems), the following is meant to serve as example of the kinds of features and differences among a few--things to consider when researching a CMS.

Drupal

Drupal, for example, has been widely used for community or social networking sites where visitor interactivity is encouraged; it lends itself well to this format through a flexible commenting feature. It also is a great, flexible tool for Internet or intranet portals. Another standout feature of core Drupal is its finite permissions control for each user role, and for each module. You can create your own roles, as well.

With an active developer community and a plethora of free contributor modules, you should find plenty of tools from which to choose. And, if you don't find a module to do precisely what you need, two modules--Content Construction Kit (CCK) and Views--make Drupal highly customizable, allowing you to push/pull and manipulate data in a myriad of ways. All without having to access any programming code.

The Whitehouse recently rolled out a Drupal site, http://www.recovery.gov/, and the French Government also said oui oui to Drupal with their http://www.gouvernement .fr/. To prove that a CMS site does not have to be boring and templatey-looking, check out a few top-notch sites featured here: http://sixrevisions.com/web_design/31-drupal-content- management-system-cms/.

Among other uses, the author uses Drupal as a (private) client job ticket center, through the delightful JobTrack contributed module.




Joomla

Joomla claims to have the largest availability of plugins (referred to as components, extensions, mambots, themes), many of which are fee based. Some modules are obtained by fee per plugin, others through subscription to all the developer's offerings. You will likely have no trouble finding what you need.

While flexible access control is not part of the core architecture of Joomla (as it is with Drupal), several standard user roles are available: Register, Author, Publisher, Administrator, Super-Administrator. If you want to establish more user rights control, you will need to purchase a module to do so.

When it comes to creating content, Joomla offers several customization options for each content item. Assign your roles carefully--you could easily overwhelm your non-techy client users with the many choices.

WordPress

WordPress has often been the go-to tool for bloggers, as is hinted by its name. However, WordPress is constantly evolving to offer more and more flexibility and extensibility, in order to compete with other CMS forerunners.

WordPress is often available for installation through Web hosting control panels, and novices find it easy to install and use.

The Vancouver Convention Centre site (http://www .vancouverconventioncentre.com/) is a beautiful example of a WordPress built site.

Which is Best?

Asking Web designers/developers which CMS is best is a bit like starting the Mac vs. PC debate. Sure, each has advantages and disadvantages, but it tends to come down purely to preference.

CMS Site Building Tips
  1. Always create and maintain a development site! You don't want to install new plugins, upgrade core or contributed modules, or experiment on the live site first.
  2. Do not hack core code, if at all possible. Content management systems are designed to be customized without having to access the programming code. If you modify the core code, or contributed module code, you will need to redo those modifications each time you upgrade to the software with the many builds that will follow.
  3. If you are an experienced Web designer/developer intending to create a custom site, consider starting with a no-frills theme. These tend to be created by developers who value compliant code over pretty graphics (which you will apply yourself). Select the theme based on the basic layout (2-column, 3-column, tableless, XHTML compliant). A nice feature with CMS is that you can add multiple themes and simply turn them on or off to try out another theme.
  4. Establish user roles thoughtfully. Give users only as much access control (/permissions) as is necessary. Not only is this prudent for site integrity, but you do not want to overwhelm your content creators with more options than they need.
  5. Remember, WYSIWYGs are evil (but clients require them). Good luck with that.
  6. Have Firebug locked and loaded before you begin. The content management systems use many layers of CSS files. (For more on Firebug, see "Firefox and Firebug: A Developer's Swiss Army Knife": http://www.htmlgoodies.com/beyond/ webmaster/toolbox/article.php/3801831.)
  7. Many content management systems, although typically written in PHP, will run on an equipped Windows server, but some functionality (e.g., search engine friendly URLs) will be lost.
  8. Use of a CMS requires some extra search engine optimization (SEO) care. Use search engine friendly URLs, and be sure to use a well-defined robots.txt file and sitemap.
  9. With a CMS, all content and operational instructions are written to a database, and your style mods will be contained in your custom CSS theme files. So, perform regular SQL dumps and backups of those CSS files. If you haven't hacked any programming files, backups (and restores) will be quick and painless.
  10. Don't leave your clients hanging! Even though a CMS is designed to make them more independent, clients typically need guidance and implementation for expanded functionality, as their needs evolve.
[htmlgoodies]

Labels: ,

Post a Comment

| 0 comments

 

 

 

Home | About Us | Web Services | Portfolio | Sitemap | links | Contact us | Request a Quote
Copyright © Contempotech 2008