Thursday, January 3, 2008

The Basics of Sitecore's Content Tree

The content tree in Sitecore provides a hierarchical view of system data. Each node in the tree is referred to as a “content item” and can contain any number of content versions in any number of languages. A typical Sitecore instance stores data in a relational database (such as SQL Server or Oracle); Sitecore represents the data in memory as an XML structure. The content tree is a visualization of that structure.

This blog describes a number of considerations involved in designing the content tree. These considerations are divided into four major categories: 1) Architectural, 2) User-Interface, 3) Presentation and 4) Development. Architectural considerations address issues that are fundamental to the structure of the content tree, i.e. determining the basic organizational framework for site content. User-interface considerations explore how the organization of the content impacts the functioning of the Sitecore business-user interfaces. Presentation considerations address how the organization of the content tree affects developers’ ability to retrieve and render data from the system. Development considerations address how the content tree structure can simplify or complicate the development process.

Typically, the design of the content tree is considered early on in the project – after your information architecture and content taxonomies have been developed, but before any C# or XSL coding occurs. The following requirement areas will ultimately inform the shape of your content tree and should be understood during the content tree design phase:
  • Information architecture of your website in all its presentation formats (browser, RSS, etc.)
  • Content taxonomies and business rules about their use
  • Major navigation metaphors for your site (i.e. hierarchical or faceted navigation, breadcrumb, sitemap, etc.)
  • Content volume upon launch and over time
  • Security rules for business users and public visitors to your site
  • Number of sites managed within a single Sitecore instance

You may not have complete detail on all of the above requirement areas prior to designing your content tree. The less detail you have, the more iteration will be required through the design. As with any solution architecture component, you should budget time to test your design against various requirements, known and (to the degree possible) unknown.

Prior to designing the content tree, you have begun work on your template model. Your template model describes the content types on your site and their relationships to each other. Template modeling is beyond scope for this document, but it is likely that your template model will evolve in dialogue with the design of your content tree.

To view the content tree in Sitecore, use the Content Editor application. There are two audiences for Content Editor – developers and power users. For developers, Content Editor is the primary tool used for editing and adding Sitecore content. Power users may also use Content Editor to facilitate quick editing, sorting or to make changes that aren’t available in WebEdit mode.

In general, business users and power users should be directed to WebEdit mode for all content changes. If business users or power users are using Content Editor, usability considerations will heavily come into play in the design of your content tree. These usability concerns are not discussed in this blog and instead, Sitecore recommends that business users and power users be directed to WebEdit mode.

No comments: