What is the meaning of Defining Data in Sitecore

All web content management systems include two major components:

  • Facilities to define data structures that allow CMS users to enter site content.
  • Facilities to present that data in those structures as a website.

Information Architecture is a model for the structure of the data behind a web solution.
Information architecture includes both high-level structures — defining the relationships among managed sites and their pages, as well as low-level details, defining individual page types and individual component.

Key terms used while defining a Information Architecture –

  • Item— An item is a data record, similar to an instance of a class in object-oriented
    programming (defined using the class keyword in C#).
  • Data template— A data template defines the structure of a type of items, much like a class or structure in object-oriented programming.
  • Data template field — A data template consists of some number of data template fields, which are similar to properties of a class or members of a structure in object-oriented programming.
  • Standard value— Each data template can specify standard values for each field defined in the template and any of its base templates, much as constructors and other initialization code can set property values in object-oriented programming.
  • Base template— Each data template can inherit from any number of base data templates, much as a class can inherit from a base class and implement interfaces in object-oriented programming.
  • Standard template— Most data templates inherit from this standard data template, as all classes eventually inherit from the System.Object class in .NET.

Sitecore facilitates hierarchical information architectures. Most Sitecore solutions use the information architecture to drive navigation for the site. In such
cases the information architecture typically matches the visual structure of the website exactly.

Item

A Sitecore ‘item‘ is the basic building block for everything that makes up a Sitecore website.  A Sitecore ‘item‘ is a virtual object that lives within Sitecore itself (the database). When you open up the Sitecore Editor, you will see a navigation tree.  Every entity within this navigation tree is an item. For developers understand point view consider sitecore items as Object Oriented Objects.  Like an OO object, items can be used to represent different things.  Some items will represent content, some items will represent templates, some items may even represent settings, like an option for a drop-down list or an image.  Items can even inherit from other items to prevent duplication, so one item might be constructed of 2 or 3 different items

Item Languages, Versions, and Revisions

An item can be created in multiple languages. To do so we first need to register languages before using to create item of that language. For the the particular language you can create the separate version as well.

Sitecore does not store different values for each language in fields that you mark
as shared.

For registering a new language in sitecore instance refer blog.

Item Properties

  • Name — The name of the item, which is not necessarily unique, even among its siblings.
  • Key— The lowercase of the item name, which is not necessarily unique, event among siblings.
  • Path— The names of the item and its ancestors in document order, separated by the slash (/) character. (Sitecore does not store the path in the item, but constructs the path dynamically based on its location in the content tree, from the top of the hierarchy down.)
  • Data Template— The data template, or structure defi nition, associated with the item. (A property of the item contains the ID of its data template.)
  • ID — The unique identifi er for the item. (An item has the same ID in the Master database and all publishing target databases, and may also exist in the Core database with the same ID.)

Sitecore item names have two fundamental purposes:

  1. To identify Sitecore items within the item hierarchy.
  2. To provide default URLs for content items.

As it is not always recommended to have spaces in the URL, but required the spaces while naming the item for better understanding of author, use the _Display Name property of the item. Refer the blog for using _Dispaly Name in sitecore.

Clone and unclone an item

A clone is an item that is not just a copy of the original item, but one that inherits the field values from the original item. If you update a field in the original item, the corresponding field in the clone is also updated.

In Sitecore, you can create clones of items and of entire branches of items. A branch is a parent item and all its descendants.

Clone an item

To create a clone of an item:

  1. In the content tree, select the item that you want to clone.
  2. On the Configure tab, in the Clones group, click CloneClone and unclone optionin ribbon
  3. In the Clone Item dialog box, select the location where you want to store the clone. You can navigate to the location in the content tree on the Browse tab or search for the location on the Search tab.Clone item dialog
  4. Click Clone.

If you select the clone item in the Content Editor, you notice that the field titles have the [original value] text added. This means that these values match the corresponding values in the original item and are updated if you edit the field in the original item.

Cloned Item Show

Important

If you clone an item that is in a workflow, the workflow and the Workflow state properties are copied to the clone item. After the workflow fields are copied, the workflow properties of the clone and the workflow properties of the original items are not connected any more. If you change the workflow state of the original item, the workflow state of the clone does not change.

Un clone an item

If you no longer want to have a connection between the original item and the clone, you can unclone the clone item.

To un clone a clone item:

  1. Select the clone you want to un clone.
  2. On the Configure tab, in the Clones group, click Unclone.Unclone Item

No field values in the clone item change. The connection between the clone and the original item is removed and the clone becomes a normal content item.

Aliases

Sitecore determines the default URL for an item based on its path; for instance the default URL for /sitecore/content/home/hr/jobs is /hr/jobs.aspx.  In some cases it is useful to have shorter URLs which map to longer paths, for instance /jobs.aspx may be preferable for marketing materials (email campaigns, print advertisements, etc.).  Sitecore supports alternate URLs through a feature known as aliases. Read more about aliases here.

Wildcard Items

As of now I had not fully understand the usage and practical implementation of the WildCards in sitecore implementation. I will try to update this section later once I would be fully aware about wildcards.

Data Templates

Data templates (or just templates) define the structure of types of items as a collection of named field values. Data templates can provide default (“standard”) values for each field in the data template. Template supports Multiple and Sequential inheritance both. All the user defined template inherits from Sitecore’s standard template, which defines sections and fields that can apply any item.

Sample data Template View

Basic Types of Templates

Three basic types of templates can be defined in Content Editor/Template Editor.

Data Templates

The basic template type. It can contain fields and can be instanced by editors using insert page. This article discusses exactly this type of template.

Branch templates

The branch structure of templates. It allows you to define the entire branch of templates so by creating an instance of a branch template the whole item structure appears without the user having to create them one by one.

Command templates

It basically only deals with a command, which is evoked when creating an instance template. It is used for the automatic creation of items with business logic.

Data Template Sections

A data template consists of zero or more data template sections, which group the fields defined by the data template.

Field sections

Data Template Field Types

Each data template section can contain any number of data template fields, which define the CMS user interface component for editing values and the storage formats for those values.

Category Field type Descriptions
Analytics Profile Card Value Allows the marketer to select a profile/persona that can be associated to the piece of content. You will almost never need to use this field because it’s already in the standard template.
Analytics Profile Cards Similar to Profile Card Value, but more robust, accommodating other settings such as user segment, information type, and score.
Analytics Tracking This is an important field, allowing marketers to associate campaigns, goals, events, and other settings to a piece of content.
Simple Types Checkbox Stores a simple Boolean, Yes/No value.
Simple Types Date Stores a date. You can use the $date token within standard values for the replacement of the current date upon new item creation.
Simple Types Datetime Stores a date and a time. You can use the $date and $time tokens within standard values for the replacement of thecurrent date upon new item creation.
Simple Types File The File field allows users to “attach” files to the content. The user can select files out of the Media Library to attach, or upload new ones.
Simple Types Image Similar to File but specific for images. Images rendered with FieldRenderer can have a MaxWidth applied. When applied, Sitecore will cache a resized image according to that width, thus speeding up download times. This offers a significant advantage over the File field when working with images.
Simple Types Integer Stores a whole number, without any decimal places.
Simple Types Multi-Line Text Allows for multiple lines of text.
Simple Types Number Takes any number, with or without decimal places.
Simple Types Password Offers the user a textbox but blurs the text so onlookers cannot see the value.
Simple Types Rich Text Similar to multi-line text, except that it offers a rich text editor to aid content editing. The text is stored as XHTML rather than straight text.
Simple Types Single-Line Text Straight text line with no rich text and no carriage returns.
Simple Types Word Document Allows for a Word document to be attached to the item, with links for Edit and Download. Inline editing of the document is only supported on IE.
Social Accounts Multilist Internal; you probably won’t use this.
Social Campaign Tree Internal; you probably won’t use this.
Social Countable Edit Internal; you probably won’t use this.
List Types Checklist Allows for the user to check multiple checkboxes. The data source can be set to an item in the tree, and items below that parent item will appear as selectable options.
List Types Droplist Similar to Checklist except it renders a drop-down instead of selectable checkboxes. The disadvantage is you can only select one option in this case. Note: only the item name is stored, not an actual link to the item in the database. Therefore, use this sparingly if at all to avoid broken links. As an alternative use Droplink whenever possible.
List Types Grouped Droplink Similar to Droplist except that the grandparent is set to the data source. In this case, the child items are the “groups” in the drop-down and their children then become the options. Note: Droplink stores the ID of the item selected and is a better option than Droplist.
List Types Grouped Droplist Similar to Grouped Droplist except only the value is stored. Use sparingly if at all.
List Types Multilist Shows the left/right selector to select multiple items with left/right arrows. Also allows sorting on the selected items, perhaps making it preferable to Checklist.
List Types Multilist with Search Similar to Multilist but with the addition of a search box to allow users the ability to search for items instead of trying tofind them in a list. This is helpful for large lists.
List Types Name Lookup Value List Similar to Name Value List in that this field lets you store key/value pairs, but it also lets you set a data source from where to allow the user to pick the key/values from.
List Types Name Value List This field type helps you store a collection of key/value pairs.
List Types Treelist Similar to the Multilist but rendered via a treeview versus a flat list. There are also many configurations you can set to include/exclude what shows up in the treeview.
List Types TreelistEx Similar to the Treelist but the tree is collapsed on load, making load time faster as items are fetched only when the user expands that item.
Link Types Droplink One of the best, most commonly used types for storing dropdown values as it links directly to the item in the database and thus the solution is safer from broken links.
Link Types Droptree Similar to Droplink but renders a treeview instead of a normal drop-down.
Link Types General Link Standard linking ability, commonly used for linking to external sites or if the user needs to add link settings, such as targeting a new window or calling JavaScript upon click.
Link Types General Link with Search Similar to General Link except it also provides the user a search box to search for items.
Link Types Version Link Clones use this field to track an items ID, language, and version number when cloning.
Developer Types AccountSelector Internal; you probably won’t use this.
Developer Types Icon This field gives the user the ability to select an icon out of the icon library.
Developer Types iFrame Lets the user specify the path to another application.
Developer Types Tristate Lets the user select between Yes and No, but also Undefined.
Developer Types Sitecore User Lets the user select a user stored in the Sitecore database, such as a customer who has a login configured.
System Types Attachment Internal; you probably won’t use this.
System Types Custom Internal; you probably won’t use this.
System Types Datasource Internal; you probably won’t use this.
System Types File Drop Area Internal; you probably won’t use this.
System Types Internal Link Internal; you probably won’t use this.
System Types Layout Internal; you probably won’t use this.
System Types Page Preview Internal; you probably won’t use this.
System Types Query Builder If you need a search query to be the data source of a control, you can use this field to help build that query versus having to type it in manually (which is error prone).
System Types Query Datasource Internal; you probably won’t use this.
System Types Rendering Datasource Internal; you probably won’t use this.
System Types Rules Internal; you probably won’t use this.
System Types Security Internal; you probably won’t use this.
System Types Template Field Source Internal; you probably won’t use this.
System Types Thumbnail Internal; you probably won’t use this. Instead set a MaxWidth on the ImageField.
Deprecated Types N/A Deprecated types are in Sitecore for the purposes of backward compatibility with previous versions of Sitecore only and should not be used for new data templates.

Custom Data Template Field Types

In addition to overriding the default field types, you can implement custom field types. I will write more about creating Custom Data Template later.

Standard Values

Standard values define field values that apply to all items based on a data template that do not override those values. All items based on a data template automatically contain its standard values, but each item can override standard values for individual fields. To create or edit the standard values item for a data template, do the following:

  1. Select the data template in the Content Editor or Template Manager.
  2. Click the Options tab, and then click Standard Values in the Template group.

 

Data Template Inheritance

Helix outlines five types of templates and recommendations on how inheritance should be handled. So the structuring of the data Templates  should be done in the below five types :

  • Interface templates : These templates correspond to an interface within C#; a
    template used to map data in Sitecore into objects within your code. It is a common
    practice to denote Interface templates by prepending an underscore in front of the
    template name, e.g., LinkMenuItem .
  • Page type templates : A page within your site; these templates are derived from one or more interface templates for its data, but in addition, contain presentation details, such as a layout, for rendering purposes. These templates should never have any fields directly on the template nor be referenced by code; they are only for building pages.
  • Datasource templates : These templates are referenced by components as their data source; they derive from interface templates but contain neither presentation details nor fields. Additionally, they are never referenced from code.
  • Settings templates : These templates contain data used for site settings, business rules,dictionaries, and so forth.
  • Folder templates : These templates are used for folders; mainly they enable reuse of a folder’s set of insert options to maintain which items can be created in the folder.
Inheritance Division for Data Templates
Structure your data templates in five categories: interface templates, data source templates, page templates, settings templates, and folder templates

Standard Values

Usually a developer remember the standard values as default values, since they are a way of assigning default values to items. However, standard values do a lot more than that. Standard values can have the following types of defaults, among others:

  • Default field values
  • Insert options
  • Presentation details
  • Workflow

RESETTING TO STANDARD VALUES

Adding standard values to a data template

  • To create standard values item, select the data template and then click the Builder Options tab.
  • Click Standard Values below the Builder Options tab and you will notice the new standard values item appear.

Content Editor screen for adding standard values to a template

 

 

Take away 

  • Configuring Presentation Details should be reserved for Page Type Templates only.
  •  Insert should never be set on Interface Templates.
  • Layout deltas are an important concept in template inheritance. When an item receives its values from its template’s standard values, and those values are changed, the link back to the standard values is not broken. Rather, a “layout delta” is created to track just the delta from the standard values.
3860cookie-checkWhat is the meaning of Defining Data in Sitecore

Add a Comment

Your email address will not be published. Required fields are marked *