'Content Management' Category

Heirarchy of Irritating Ways to Communicate with Your Web Team

There are good ways to communicate, and bad ways. The bad ways don’t convey the message, they leave clearly-formed questions unanswered, and create frustration and confusion in the process. Having been through this recently, here is my take on the heirarchy of irritating ways to communicate with your team on a web project:

From most irritating (6) to least:

6. Video of project manager going through in painful but vague detail, replying to only a few of the questions that you posed
5. Annotated PDF with circles and arrows, providing in excruciating detail things that are very obvious and could be conveyed with a single sentence.
4. Microsoft Word document with embedded graphics (such as the new banner you’re supposed to use)
3. Basecamp
2. E-mail

And the least-irritating way to communicate:

1. A better issue tracking system

If I was cruel, I would post examples, but I won’t. Someday I will be disciplined enough to require ALL my customers to use my issue tracking system.

Using jQuery Autocomplete with Lasso

Autocomplete creates the dropdown when something is typed into the input field.

Autocomplete is the feature of a website when you type something into a box and up pops a list of possible selections. Google has recently added this feature on its search page. Autocomplete can give your users a very nice, fast, AJAX-based method to do lookups.

This article gives several examples of how to use jQuery’s Autocomplete feature with both a simple list of selections (in a static Javascript array) or using a database lookup. Also included is working code for a PHP example from another site. If you would like to get autocomplete working on your site, this article is for you. Or if you know or are interested in Lasso vs. PHP coding styles, this might provide a good example. This article’s intended audience is web developers.

Tools Needed

You will need a good code editor. I work on a Mac, and my code editor of choice is BBEdit. It is also helpful to have some way to examine traffic between the browser and the server on a low level. I use Firefox as my default browser. The Firebug plugin for Firefox  is invaluable for seeing what is happening with AJAX requests, which is the way this code functions. In the case of a page that does a database lookup, by using Firebug you can see the data returned from the lookup page in its raw form. If you make a mistake in modifying the files, the Javascript or data probably will be invalid and nothing will happen at all. This can be quite frustrating, as there are few clues as to what might be wrong. Firebug gives you an idea about what is happening.

You will also need a working installation of MySQL and Lasso Professional. This code uses a custom tag encode_json, which handles the JSON encoding of the data returned from the Lasso page back to the calling page. This code is tested on Lasso version 8.5.

How Autocomplete Works

On the web page that the user calls there is a Javascript running. When the user types into an input box, the Javascript intercepts the keystrokes (based upon a minimum number of keystrokes set in the Javascript), then does an AJAX query (a behind-the-scenes query) to a database to get a web page fragment. This fragment is then used to build the popup menu of terms.

Installing the Examples

  1. Download the example files from the Resources link at the bottom of this article.
  2. Copy everything to the root of your webserver.
  3. Put the contents of the LassoStartup folder to your server’s LassoStartup and restart Lasso.
  4. Set up a database called whatever you want, then load the projects.sql file to create a projects table.
  5. Enable Lasso Security for the new database.
  6. Change the Inline code to use the same database name that you set up.

Screenshot of the autocomplete simple example.

Autocomplete Simple Example (Lasso Code)

The Lasso Simple example contains a file called autocomplete.lasso. This example builds a list of project names from the database. By a “simple” example we mean that this lookup creates a simple Javascript array, which is an array containing only one field that can be used for autocomplete. This might be useful for a name field or possibly an address or city.

The “simple” example queries the database and builds an array in-place, it does not use an AJAX call to an external lookup page. To see what it does, load the page and look at the source code. You should see a Javascript array with your data.

With Firebug running, check the response page. You won’t see any external calls, which is correct as it is all done within the original Lasso page.

If you want to also pull in an ID field or other fields from a database lookup, then you need to use the Database Lookup Example.

Screenshot showing the autocomplete lookup working.

Screenshot of the autocomplete database response. See the bottom half of the screen for the Firebug output showing the data being returned back to the calling page.

Autocomplete Database Lookup Example (Lasso Code)

The Database Lookup example builds a list of project names and IDs from the database. This would be pretty handy in any situation where you have a related table with IDs where you want to store the ID, and not the name field.

In this example, the names (or, more precisely, the label) is displayed in the autocomplete. When an entry is selected, the ID is populated to the ID form box. If you don’t want to display this, it could easily be changed to a hidden form field to make it less distracting to the user.

Run the example by loading “project_poc.html”. Try entering different three-letter combinations to see what autocomplete returns. With Firebug running, check the response page. You should see an external call to “project_lookup.lasso” which is a page that fetches records from the Projects table and builds the output that is then displayed by the original (calling) page.

See the screenshot (above) for an example of what correct data should look like.

Screenshot of a PHP version of autocomplete in action.

Screenshot of autocomplete PHP response page. See the bottom part of the screenshot for Firebug displaying the data being returned.

Autocomplete Database Lookup Example (PHP Code)

We have included a set of PHP files from Using jQuery UI’s Autocomplete to Populate a Form, which is a very nice description of how this works in PHP. These files are provided solely for comparison on how Lasso operates versus PHP.


Autocomplete is a great feature that can be added to your website to enhance the user experience. Hopefully you find these working examples helpful.


1. Download the Using jQuery Autocomplete with Lasso code for these examples. This should have all the files you need to run the examples.

2. jQuery Autocomplete can be built as a part of the jQuery UI. A prebuilt version is included with the code examples.

3. The PHP example was lifted from “Using jQuery UI’s Autocomplete to Populate a Form” and only minimally modified. Full credit to www.af-design.com. Check out that article for a full description of the PHP way of doing this.

How to Select a Content Management System (part 4)

This is part four of a four-part series on how to choose a content management system. It is directed toward end-users, but developers may find some tips here too. Feel free to leave your comments.

11. What options are there for tech support?

What happens when you have questions or something needs to be fixed? That’s where tech support comes into the picture.

Open-Source – A potential concern is whether the platform comes with support. Open-source platforms come with no support. The user, or the developer that they hire, must be knowledgeable in the operation of the platform to get the most benefit. Since there is no single vendor that creates the platform, tech support is usually handled ad-hoc through the user community. This happens by way of technical e-mail lists, forums, or knowledge databases. When questions arise, the user or developer must know how to sift through typically a very large volume of information to find the answer to the particular question they are faced with. If you are considering hiring a developer who will be using an open-source platform, make sure that the proposal specifies the level of tech support.

Commercial – With a commercial platform, the options are usually limited to the software vendor that created the platform. Levels of support range from free e-mail support, a limited amount of time or number of issues per month that are included at a fixed rate, to a full maintenance contract specifying response times and service levels. Telephone support may be (but is not always) an option. The most common type of commercial support is a paid plan in the form of “maintenance blocks” purchased through the vendor. The client is allocated so many minutes per block or month.

12. Who retains ownership of the site?

There are concerns of intellectual property with website content, and we certainly aren’t going to cover this in-depth here. Based in copyright law, the current generally-accepted practice is that the user owns their data (database, images, uploaded files, any templates or graphics that were provided for the development fee covered). This applies regardless of the platform used. You should get free access to your data and files.

The contract with the developer and hosting provider should clearly define who owns which content. It’s a hackneyed phrase, but you really should consult an intellectual property attorney for advice on ownership.

OK, so now make a choice!

Start with the CMS Matrix, look over the features, have a conversation with a developer, and you will begin to see a path take shape. The most important thing is to get started!

How to Select a Content Management System (part 3)

This is part three of a four-part series on how to choose a content management system. It is directed toward end-users, but developers may find some tips here too. Feel free to leave your comments.

7. What is the difference between open-source and commercial CMS platforms?

The ethos of open-source projects dictate that a group of developers contribute or approve code to add to the codebase. Generally speaking, the code that runs the CMS is available free for anybody to use. The fact that the code is free says nothing about the feature set. Open-source systems run the spectrum from very basic through extremely complicated, and run sites from very small sites with a few pages, to huge, enterprise-level sites. Licensing is covered by various forms of open-source licenses.

The code for commercial systems, on the other hand, is the intellectual property of the developer. It is typically not an option to install third-party add-ons or to hire other developers to modify the code. In this situation, the customer is buying a service from the developer, and the site is not portable. The platform code may or may not be for sale. Licensing is specific to each developer and varies widely.

8. How flexible are the CMS platforms?

This question refers to two things: Whether the CMS will handle the needs of the design, and whether the CMS will handle the data requirements.

Data Flexibility – Look for answers to these questions:

  1. What are the specific needs you have to collect or display data?
  2. Will the stock platform do everything you want, or is it missing something?
  3. If any features are missing, are these easily available through plug-ins or modules?
  4. If you need to have some new feature created, does the developer have the ability to create them?

Design Flexibility – Some things to consider here:

  1. If you have a design in mind, will the platform easily accommodate it?
  2. Does the platform make use of templates or skins?
  3. Are the templates easy to use?
  4. Can a designer modify the files?
  5. Is there a way to visualize the templates?
  6. To what extent does a developer need to be involved?

9. How easy to install is the CMS platform?

To some extent the options are influenced by where you will be hosting your site. Some large providers offer “standard” packages. Make sure they will do what you want!

Open-Source – Nearly all of these need a developer to be involved in the installation and configuration. The are many options to configure that an experienced developer can work through with little trouble. Some of these include webserver virtual host setup and redirecting, database connections, user permissions, file permissions, storage space, memory allocation, spam prevention software setup, search engine optimization settings.

Commercial – Installation will almost certainly be handled by the developer.

10. How easy to upgrade is the CMS platform?

Some platforms are far easier to upgrade than others. Open-source platforms are usually updated quite frequently. The problem is that your site is not magically updated – somebody has to do it. Is that covered in the proposal? Some developers will automatically upgrade their sites, which can give you “free” new features.

Sites created on a commercial platform may or may not have automatic upgrades. New features may be offered on an included basis, or you might have to pay for a new revision. That is worth exploring, as the cost could be substantial.

How to Select a Content Management System (part 2)

This is part two of a four-part series on how to choose a content management system. It is directed toward end-users, but developers may find some tips here too. Feel free to leave your comments.

CMS Matrix

Download the CMS Matrix and compare the features of seven different content management systems.

2. What is the difference between a blog and a CMS?

A blog platform (like WordPress, used to write this blog), is a special-purpose type of platform that has a limited feature-set. Blogs are suitable for a limited-range of duties. WordPress excels as a blog, but is not a full-featured CMS. Some features of blogs are the ability to write articles (posts), solicit reader comments, and engage the audience in discussions about a particular topic. They also have features to submit content to various content networks such as Facebook, Delicious, Twitter or StumbleUpon (among others). If you need only this type of feature set, then you need a blog, so look for a blog platform.

A typical CMS has many features that blogs do not have – image galleries, testimonials, contact forms, some type of user architecture that can be extended, private user areas, advanced search engine features, etc. It might be the case that you need both a blog and a CMS.

3. Which platform will you be using?

Platform refers to the name of the CMS. The choice of platform determines what features are standard. Some platforms you may recognize include Acumium, DotNetNuke, Drupal, ExpressionEngine, Joomla!, WordPress, itPage.

An important point is that if you are an end-user you may not have much choice of a platform, as most of these are not systems you just simply install and use. They take quite a bit of configuration and deep technical knowledge and skills to get them operational and customized. If you are considering working with a developer, they probably will have a platform to recommend. Then the task becomes evaluating the features and cost.

4. What are the feature sets of some popular CMS platforms?

What do you need, what will you use? The CMS Matrix contains over 50 factors that will help you evaluate a CMS. Download it, print it out, and check off which features will be needed for your site.

If you are evaluating developers, ask them about the various features of the CMS they are recommending and how that platform compares to those on the matrix.

5. How easy to use is the CMS administration area?

The ability of an end-user to easily operate the system is arguably the single most important criteria in evaluation. A potential problem with any CMS platform is that it must be created with the end user in mind. The programmers creating the platform must ensure that the admin experience is intuitive. Many CMS platforms fail this test, as they are primarily developer tools that are not suitable for non-technical users.

So how do you tell? Get a demo! Any developer you are considering engaging should give you a free, no-obligation walk-through of the administration area so you have some idea of how it works.

6. How much does a CMS-based site cost to develop and maintain?

Pricing stategies and fees cover a huge range, as do client expectations of the features and support they will get for the money. If you intend to work with a developer, get a written proposal from them for the site development. Make sure that the proposal clearly states the costs, the services offered, the vendor responsibilities, the client involvement, hosting agreement, ownership and licensing of code and data.

Here are some questions to ask them:

  1. How much is the initial development fee?
  2. How much is the hosting cost?
  3. How much is a platform upgrade (maintenance)?
  4. Is there a support or maintenance contract offered or needed?
  5. How is work done after the initial development billed?
  6. How portable is the site (the hit by a bus scenario)?
  7. What is the site backup plan (data, images, system files)?
  8. What type of access is included (FTP, CMS admin, SSH)?

How to Select a Content Management System (part 1)

This is part one of a four-part series on how to choose a content management system. It is directed toward end-users, but developers may find some tips here too. Feel free to leave your comments.

itPage Image Library Jooma 1.5 Media Manager (Credit: opensourcecms.com)

You may have heard about using a content management system (CMS) to manage your website. How do you determine if a CMS is right for your site? This article talks about some factors to consider when evaluating a CMS and some simple guidelines that will help you determine if your site will benefit from a CMS.

Why Does it Matter Which CMS You Select?

The answer to this is simple: Making the right choice will save you time, money, and will help you to get a system that does what you need. A CMS site can be a significant investment, in both time and money. The correct choice of developer, platform and services can yield a productive, rich site that can really benefit your organization. The differences among systems are huge, so read on.

What is a CMS?

A CMS is a software platform used to manage a website. The website is managed through an administrative area using any web browser (Firefox, Safari, Chrome, Explorer). A typical CMS lets you do these things:

  • Manage page content (add/edit/delete/activate)
  • Upload files, images and media to a site library
  • Control the design of the site (templates, stylesheets, skins)
  • Set up user access and notifications
  • Define search engine keywords and other page meta information
  • Advanced functionality, in the form of galleries, widgets, plugins, or some way to add new features
CMS Matrix

Download the CMS Matrix and compare the features of seven different content management systems.

Feature Comparison of CMS Platforms

Start by downloading and printing out the CMS Matrix to help evaluate the points in this article. The CMS Matrix contains a comparison of seven content management systems.

There are entire websites dedicated to this comparison, but these are some popular choices. If you are interested in a more in-depth comparison, see the footnotes in the CMS Matrix. Two sites you can use to evaluate are CMS Match and OpenSourceCMS. Be aware that these sites may contain obsolete information, so some independent resarch may be needed. We have done this for you for the seven platforms listed in the CMS Matrix.

Factors to Consider when Choosing a CMS

There are many factors to consider when selecting a CMS. The most typical concerns are:

  1. Will you be using a developer?
  2. What is the difference between a blog and a CMS?
  3. Which platform will you be using?
  4. What are the feature sets of some popular CMS platforms?
  5. How easy to use is the CMS administration area?
  6. How much does a CMS-based site cost to develop and maintain?
  7. What is the difference between Open-source and commercial CMS platforms?
  8. How flexible are the CMS platforms?
  9. How easy to install is the CMS platform?
  10. How easy to upgrade is the CMS platform?
  11. What options are there for tech support?
  12. Who retains ownership of the site?

1. Will you be using a developer?

If you are considering working with a developer, ask them what platform they prefer. Most likely they have a recommendation, and you may have only one or two choices. Developers tend to specialize on the tools they prefer, so this should not be surprising. Ask how familiar they are with the CMS. They also should be able to provide a range of time or costs for development.

You might not necessarily know if you need a developer. Ask yourself this question: Is this something I can handle myself? The answer will probably be self-evident.

Making a Choice – A possibly significant difference when using a commercial platform is that, should your relationship sour with your developer or your developer go missing, there might not be any other developer to turn to. You are locked into that platform, and it might be expensive to get out of it. With an open-source platform, it is possible to find other developers with familiarity in that platform, providing more flexibility.