Drupal

March 20th, 2007 by Jim

Most people who are looking for a stable low-cost CMS solution stop with either Drupal or Mambo, or they choose one of the nuke-esque portals. While I’m not a wizard with any of them, I’ve tinkered, toyed, ripped open, and experimented with a lot of these types of applications.

For what I do (building applications for others rather than myself or organization), I find Drupal to be ideal where budget is a concern. There’s several reasons for this.

  1. It’s open-source which makes it free.
  2. It installs in a matter of minutes.
  3. It’s well-documented and supported.
  4. It’s feature-rich.
  5. It’s scalable.
  6. It doesn’t make many assumptions about what you’re intensions are (more about this one in a bit)
  7. It’s highly configurable. (more about this one in a bit)

What’s most important to me in this list is #6 and #7. Most of these out-of-the-box, turn-key portal solutions assume that you want to build to be a content portal. What if you wanted to weave an e-commerce catalog into your installation? What if you wanted to build other custom modules? Some of these ready-to-go types aren’t great with scaling and flexing to meet your need. Also, when you do the install  it creates a bunch of defaults to help you get by. Although these defaults can help you understand how stuff works, and what shows up where, they’re also a pain in the butt sometimes to get rid of.

Most of these nuke sites are extremely configurable, as long as you’re configuring something that’s already there, or can be added on with some .zip file download. Like I just mentioned, maybe I want a core site to develop around. Maybe I want to use the framework provided by the portal software, but I don’t necessarily want to use the modules pre-developed and packaged with it. Mambo is a strong portal application, and it’s great at what it does, but it can be handcuffing. Nuke sites are a little better, since the “nuke” style of coding is fairly well-known. If you know how to write modules and hooks into the portal, you’ll be ok.

There’s another portal/framework out there called “Magnolia” which is by far the best out there for building custom modules onto. Since I’m not really a proponent of Java/JSP/Servlets, etc… I wouldn’t use it, but I’ve done it for others in the past. Aside from Magnolia, Drupal is about the best there is. Since it’s PHP, it’s easy to understand, modify, or scale. This, coupled with it’s VERY simple look and feel makes building a site core with Drupal extremely effective.

Although there are templates out there, the nicest feature of Drupal is that you can escape from that “portal” look and feel. Almost every one of these types  of portal applications looks like a portal application, and not a unique website. By using Drupal, you can remove the canned look and go for something specatular.

Posted in CMS Products | No Comments »

AJAX and Content Management

March 6th, 2007 by Jim

Not since I’ve become a professional on the web has a concept or technology revolutionized how we do things on the web like AJAX. Of course, AJAX is the acronym from: Asynchronous Javascript And XML. For those who aren’t programmers or technically adept, AJAX is basically a way of sending and receiving information between the browser and server without refreshing the page. It’s opened the doors wide for rich and capable web applications.

I’m not going into specifics here on how to do AJAX - Google has all the answers you need for your specific language and platform. I’m going to talk a little bit more about why AJAX might be a better fit for the CMS systems than it is for the front end. I want to talk about the features of AJAX which make it ideal for content administration, using specific examples.

I like to use the ecommerce site for my examples, although many content management systems don’t have anything to do with products and categories. I use ecommerce because it’s all-encompassing.

One of the biggest challenges we have as content management systems developers is writing software that is easy to use for your average joe. Most of the time product managers don’t have clue #1 about how the website he/she is using really works. They look at the tools you provide to them the same way they look at Microsoft Excel. There’s no need to know how it works, only that it does work so they can use it. AJAX is a wonderful assistant to help you with this.

Refreshing pages is burdensome and can cause the average person to go insane. I’m sure it’s frustrating to you too when you’ve just finished filling in a lengthy web form, including a four paragraph comment, and you submit, only to find that something went wrong and you need to go back. The form (including your comment) is empty, and you’ll need to retype the whole thing. A not-so-common occurance out on the web, but using a web-based CMS on a daily basis it might happen alot.

Edit in place. Yes, edit in place. Often times a CMS system can be completely woven into the frontend of a website. In the past what I’ve done is verify the user by their login. If they’re logged into their own site the AJAX will be enabled to edit products and other content in place. Take a product page of a catalog for example. If you’re logged in as a content administrator, your product’s particular fields will have an edit link overlayed. Click the link to open that content in an editor embedded in the page, and save. Using AJAX, we can send the updated content to the server to be saved in the database.

This method lets the content administrator browse their content exactly how the web users do to find content. Once found, they can edit their content as if it were in a backend system.

Ah, the hierarchical tree structure. A popular use for AJAX is building a hierarchical navigational tree. Think of windows explorer’s tree view with folders inside of folders inside of folders. Using AJAX, we can load the top-level categories when the page initializes. Then, when a parent category is clicked, we can use AJAX to get all of the child categories for that particular category, and CSS/JavaScript to display them in place.

You can take this concept a step further than allow a CMS administrator to add/remove/change categories in the tree, add products or documents to the tree, or move existing items from one location to the other. Of course these are advanced techniques, but make your CMS easy to use. Most people are adequately familiar with Microsoft Windows to create folders and files, delete folders and files, and move them wherever they want them. Building your CMS like this makes it almost so intuitive, training isn’t needed.

Preview on the Fly. Let your users make content updates and preview them before making them live or committing them to the database. AJAX makes it easy to redraw the page with updated content, before it goes live, and without having to wait for the page to reload. This is a highly sought after feature from my experience. Most people don’t like firing blindly and fixing problems after the fact, so why force it on them in the CMS?

“Bells and Whistles” I don’t like the buzzwords, but AJAX does. AJAX makes adding “bells and whistles” a snap. Make a simple progress bar using AJAX. You’d be surprised how much people get to relying on the old progress bar. Context-sensitive help. When the user scrolls over a given help icon, the AJAX pulls the help content down from the server and displays it via JavaScript/CSS. It’s handier than having a full HTML-formatted help document, more intuitive, and typically more relevant. User’s don’t like searching for things, which is why it’s important to put it right in front of them in an unobtrusive way.

These are just a few examples. AJAX is a technology, so use your creativity + the technology to develop some stunning tools which give your customers the experience they’re looking for. If you do, they’ll come back.

Posted in Web Programming | No Comments »

« Previous Entries