Hunt CMT is a Content Management Tool offered to WebFresco Studios' Web hosting customers.
This powerful system solves several problems associated with Web development.
The system's simple, intuitive Web-based interface
allows content owners to focus on the content. They needn't be concerned about site navigation, directories, file names, permissions, ftp or complex page layouts.
The CMT considers each Web page to be a category. Each category can have multiple subcategories to establish a content hierarchy. A template is used to determine how to format each category's content, which is stored in a database. After changes have been made, the content owner can preview the changes. This offers the ability to approve content before it "goes live." After the updated content has been approved, the changes can be "published" -- the content is retrieved from the database and formatted using the specified template to produce static HTML.
Note: Content approver is an additional, optional role.
- Interface Architects are responsible for designing the database tables and templates. Their goal is to hide as much complexity from the content owner as possible, without sacrificing flexibility.
- Content Owners are responsible for managing their sections of the Web site. They can view all categories, but can only make changes to categories they own.
- The Content Manager is a content owner that can update any section of the Web. This person can also add content owners to the system.
- Performance - Nothing is faster for a Web server to serve than static HTML. This helps the overall throughput of the Web server since it has less work to do.
- Ease of Maintenance - Content owners can edit their content using a simple Web-based form. Each data field can be presented as a form field appropriate for the content: a text input field, text area, select list, radio buttons, checkboxes, etc.
- Flexibility - The interface architects can determine the number and type of fields to present to the content owners. The CMT interface can be customized using templates to expose or hide areas as needed. If the content owners are comfortable using HTML editors, the interface architects can design the interface to allow them to upload HTML snippets created with an editor.
The published file extensions can be .html or
.php. Additional flexibility is possible if .php files are published.
- Site design integrity and consistency - The use of templates allows the interface architects to control the site design. Each template can include other templates, which offers the ability to store repeated HTML snippets in separate template files. For example, the copyright statement could reside in one file that is included in all pages.
- Integration Ease - The CMT can be used to control as much or as little of your site as needed.
Sections of an existing site can be migrated to the system gradually.
- Content Portability - Since the content is published as static HTML files, the directory can be copied to another server with little effort. The content can also be retrieved from the database as needed. You're never locked in to a proprietary system.
- Open Source - The system uses only open source components: perl and MySQL. The templating system is a popular perl module: HTML::template. The system currently only runs under the Apache Web server, but there are no special ties to Apache.
- Simple URLs -
When a category is published, the category ID is used as the file name. For example, when category 17 is published, the URL will look something like: http://www.huntcal.com/cmt/17.html
This makes it very easy to reference.
- Item Lists - Each category can include a list of documents and a list of products. The default CMT interface allows the content owners to upload content for these lists.
The CMT interface can be changed to make these lists more appropriate to your needs. Rather than products, you may want to call them "articles" or just "items." When a new instance of the CMT is created, the interface architect can specify additional database fields for the Product table.
- Document list - For each document in the list, the content owner can specify a title, description, revision date, password, URL, and the document file. The file is uploaded from the content owner's computer. It can be any file type.
- Product list - Product fields include a title, description, price, thumbnail image, and a full-size image.
Additional fields can be added during the initial creation of the database tables.
- Custom list types - Several different item types can be developed for use. The system allows you to select the type of item to add, such as event, business listing, thumbnail image with title/descriptions, portfolio item, etc.
Presentation of the lists is determined by the category's template. A list item can "belong to" more than one category.
- List Ordering - Categories and list items can be ordered alphabetically, by date, or manually. A simple interface allows the content owner to alter the order of subcategories or list items.
- Hierarchy Management - The parent/child information is accessible to the templating system, which makes it easy for a Web page to include a list of subcategories (children), categories at the same level (siblings), and the parent list. Each category is assigned a unique ID, which is an integer. The parent of a category can be easily changed by changing the ID of its parent. This makes it very easy to move a category.
- Category archiving - When a category is deleted, it is moved under the Archive category, which is a hidden category. The category and its content can be retrieved from the archive by moving it to another category. The category can only be completely removed by deleting it from the archive.
- Templates - Page layout for a category is determined by its template, which extends standard HTML with a few new "HTML-esque" tags. This offers a clean separation between the design (the HTML) and the programming.
- Security - Each category can be assigned a password, which the viewer would be required to enter in order to view the page. Each document in the document list can be password protected similarly. This makes it easy for a content owner to restrict access to a section of the site. Since the templating system can detect if a category is password protected, a visual can be added to a category list item to indicate that a password is required.
Each category is assigned an owner. Only the owner and the content manager can update the category.