Speck Concepts

Content Types

Content in Speck is broken into discreet content items, e.g. a news article Monkeys invade Parramatta or a product ACME Monkey Wrench. Each content item is an instance of a content type, e.g. News or Product. Content items also have properties, e.g. article title "Monkeys invade Parramatta" or product Id "1024". Each property is an instance of a property type, e.g. Text or Number.

In addition to some developer-defined properties like an article title, all content types have a number of system-defined properties. These included a unique identifier, created and updated dates, created by user and updated by user values, a revision number (for version control) and optionally, a label and some keywords. Users can normally edit the label and keywords, but values for the other system-defined properties are generated by the system.

The label and keywords property values can be pre-defined by developers and can be hidden from normal (non-super) users. Speck sites often take advantage of pre-defined labels and keywords to show content items of the same type on separate pages of the site, by retrieving content items matching a pre-defined label or keyword for the page. Both the Sydney Jabiru sample application and the portal framework go a step further and use the keywords to build a site map.

Content types also have methods that are used to display or otherwise manipulate instances of that type. For example a content type may have two methods used for displaying content, DisplayHeadline and DisplayFull. Speck creates a database table for each content type, and stores property values and other information about each instance of that content type (i.e. a content item) in a row.

Revisioning

Normally when you update a record in database or a file on a file system, the changes replace what was there previously. Speck allows multiple revisions of content items to be stored. When a content item is created or updated, a new revision is created and the previous revision saved. This results in a sequence of revisions and means that changes to a content item can be undone by rolling back to a previous revision. With revisioning enabled, the site can be viewed as it appeared on a previous date and removed content items can also be restored. The revision control system in SpeckCMS also provides support for the versioning and rollback of non-text assets (images, PDFs etc.).

Promotion

Content management systems often require that new content or modifications to existing content go through an approval process before appearing on the live version of the web site. The classic levels in this process are edit, review and live. New content is at the edit level while it is under construction. It is then promoted to review before being approved and promoted to the live site. In Speck, promotion is the act of assigning a particular revision of a content item to a promotion level.
Only one revision of a content item can be in a particular promotion level at a time. Under normal circumstances the older revisions are at review or live, and newer revisions are in edit. A content management system needs to know at any time the set of revisions of content items in each promotion level. If the time of promotion is recorded a CMS can recreate any promotion level at any time.