Content Management Systems
CMS Defined
A CMS is what all the big sites use to manage their content. Generally a CMS will be built on a database system where pages are assembled dynamically from pieces of content stored in a database.
Example: Amazon.com and other bookstore web sites use a CMS to create their site. When a book is entered in the system the title, author, price and description are stored in database fields. The image depicting the cover and the table of contents might also be stored there. A reviews database might store reviews by various magazines and newspapers. A user-comment database might store your comments when you review the book. When you enter your personal information, database entries record your address and credit card number and genre preferences. When you log into the site and ask for books about web design, the database rustles up every title pertaining to the topic, delivers the title, cover image, and price of each one to you in a dynamically generated page. When you click on one of these items another page is generated with more extensive information from the database - maybe the reviews and comments from other readers. When you order a book the book data is combined with your user data to list what you've ordered.
Why use a CMS
- Maintenance - users can edit their own content via the web without knowing html or having special software
- Content - for content-rich sites database-driven content storage and retrieval is key
- Interactivity - Most CMS systems provide blogging, commenting, rating, polls/surveys and other interactive content capability
User Control of Editing
As a web developer you deliver sites, but you probably don't want to be in the business of updating the site on a daily or even weekly basis. However your clients probably don't know HTML or CSS and probably don't have Dreamweaver. A CMS provides content editing, publishing, even work-flow capabilities for the non-technical user via a web-browser.
Content-rich sites
Clearly Amazon.com could not create a static page for each search criteria entered in. If you have site containing this much information you must have a CMS.
But what if you don't have that much content? What good would a CMS be then? Yes - a CMS is also valuable for:
Interactive Sites
Once you're using a database to store pieces of content that will be put together into pages, you might as well have programs that provide interactivity from a database as well. Discussion forums, voting, wikis, blogs - all these interactive kinds of sites allow your user to create their own content in the form of articles, comments, or posts. These must be stored in a database and organized so that they can be pulled out in searches or by applications such as your blog engine.
Some Free and/or Open Source CMS systems
Drupal - one of the most powerful free open-source general CMS systems. It has a large and extremely active user base that has created hundreds of plug ins for free download as well. This is the one we will be using for this class.
Joomla - another well-regarded and powerful free open-source CMS systems. Some people consider it easier to customize the look, but it has fewer add-on modules as it is a younger system.
DotNetNuke - a popular Windows-based CMS that is touted for power and ease of use.
WordPress - for blogging only. Can accommodate multiple contributors. Can be hosted for you by wordpress or you can download and install it on your own server (see my own self-hosted blog).
TextPattern - a popular and powerful blogging CMS.
Blogger.com - Google's blogging tool - entirely on-line as far as I can see.
PBWiki - a hosted wiki tool for collaboratively creating web sites with no programming required.
Reviews and Try before you Leap
CMS Tutorials and Reviews - includes tutorials on Drupal, Wordpress and Joomla
Another Open Source CMS Review - this includes a comparison matrix where you pick the systems you want to compare and it compares them in a spreadsheet.
An article by Adobe comparing some CMS systems
