“Just put that in the zip code field…” The Ins and Outs of Content Modeling
Content management integration and consulting Social networking integration Custom design Sioux Falls, South Dakota http://blendinteractive.com/
6 Evaluation Questions For those of you shopping for a CMS and comparing options. 5 Implementation Tips For those of you implementing or managing a CMS-based Web site.
Content Modeling Definition #1 The process of converting logical content concepts into editable, storable, manageable, searchable content objects by breaking them down into smaller pieces and describing their data to your CMS.
Logical Content This is the desired end result of a content management requirement.
Content Object An XML document A database record
Attribute Datatypes Content class attributes in eZ publish.
Attribute Datatypes Page Type Properties in EPiServer
Generic Custom Fields Custom fields in WordPress.
Datatypes and Sorting Datatypes tell the system how to treat values while sorting.
Common Validation Needs String is required String is numeric String matches a "canned pattern" (email address, SSN, etc.) String matches a regular expression String falls within a list of valid values drawn from somewhere else String is unique to other content Date is in the past/future Date is in a specific range File is of a specific type File is within a specific size range Value X is conditional on Value Y (if one is filled in, the other can’t be blank, etc.)
Content Modeling Definition #2 Content modeling is the process of converting logical content concepts into content types, attributes, and datatypes.
Implementation Tip #1 Think in terms of content types. Consider the ways different content will need to be edited, validated, managed, searched and organized.
Evaluation Question #2 Does it allow you to structure content through configuration or does it require you to write code or modules?
Code vs. Configuration New Content Type in Plone New Page Type in EPiServer
Implementation Tip #2 Be careful in re-using content types for logically different content.
Futureproofing is the process of designing your content model in such a way that it can be adapted to new situations with a minimum of pain.
Implementation Tip #3 To futureproof your content, speculate on and list scenarios in which the content might be used now and in the future.
A Really Bad Idea Things that shouldn’t be there:
Binary Files Binary file upload in Drupal (top) and eZ publish (bottom)
Repeating Properties A repeating data table within an Ektron content object. A one-column Matrix datatype in eZ publish.
Evaluation Question #4 Can you write your own datatypes or customize existing datatypes?
Custom Datatypes Custom datatype in eZ publish
Evaluation Question #5 How well does it manage relational content modeling?
DISCRETE content modeling is structuring content within a single content object.
RELATIONAL content modeling is structuring a content object in relation to other content.Requires a linking datatype or a content tree.
Relational Content Modeling Page Link attribute in EPIServer
Relational Content Modeling Multiple content selection in EPiServer and Ektron
Articles Title Body Author […] Articles Title Body Author […] Content Composition Article Title Body Author […] Articles Title Body Author […] is related to Author First Name Last Name […] Bureau Name […] was written by works for
Evaluation Question #6 How well does it handle hierarchical content?
Content Trees The content folder structure in Ektron A pure content tree in eZ publish
Evaluation Question #6 Does it allow any inheritance of content types or values?
Content Type Inheritance Movie Review Page Title Body META Keywords META Description URL Studio Director Cast Running Time Star Rating Music Review Page Title Body META Keywords META Description URL Number of Tracks Genre Star Rating
Content Type Inheritance Movie Review Page Studio Director Cast Running Time Star Rating Web Page Title Body META Keywords META Description URL Music Review Page Number of Tracks Genre Star Rating
Content Value Inheritance With a pure content tree, setting a value at a specific point will cause content “below” that point to inherit the value until overridden by a new value. These content objects will inherit the value applied to “News,” unless they specifically override it.
Evaluation Questions Does it allow the structuring of content? Is it via code or configuration? What datatypes are available? Can you write or customize your own datatypes? How well does it handle relational content modeling? How well does it handle hierarchical content?
Implementation Tips Think in terms of content types Avoid reusing content types Speculate on the future uses of content Do not combine logical attributes into the same implemented attribute Don’t overstructure your content
Blend Interactive http://blendinteractive.com Gadgetopiahttp://gadgetopia.com Content Management and IA Writing http://blendinteractive.com/services/cm/ Twitter “gadgetopia” Email firstname.lastname@example.org