In Sitecore you can personalize your website with conditions and actions using the Rules Engine (so called Conditional Rendering rules). In Sitecore 6.5 the interface for defining conditional rendering rules is integrated in to the page-editor, this way it´s easier for the marketeer to create and maintain pesonalization rules.
But as a developer you want to create predefined rules and activate them on the template standard values, the same way personalisation was working in Sitecore 6.4. This is still posible with 6.5 only by default the Personalisation section of the presentation component properties is hidden in Sitecore 6.5.
The following steps will enable the Personalisation section in the Presentation Component Properties dialog window.
Open the Content Editor, press the Sitecore Logo button on the top left and select Application Options.
In the Application Options dialog window go to the View tab. Underneath the Control Properties section, tick the checkbox Show Personalization Section and press Ok.
That´s it! The Personalization Section will be visible again.
You can automatically add a insert option using a insert option rule in the Sitecore Rule Engine.
In our Sitecore content tree we have a Meta-Data folder where we store al our meta-data information. The Meta-Data folder is organized in folders which contains meta-data items based on a template called Standard Text. What we want to achieve is that when a new folder is created within the Meta-Data folder the Standard Text template will be automatically available as insert option.
Open the content editor and find the Rules folder: /sitecore/system/Settings/Rules/Insert Options/Rules/
In the Rules folder create a new Insert Option Rule named Meta-Data rule. For the name enter Meta-Data rule and click, the Rule Set Editor will open. Select the condition Where the parent name compares to value and for the action check Add specific insert option. Specify the rule that it will look like this:
We don’t have to specify or activate the rule for the Meta-Data folder because the insert Option Rules will be automatically processed by the GetInsertRule pipeline.
Now test the result and create a new folder underneath the Meta-Data folder and check if the Standard Text template is added to the insert options.
When using the Sitecore Rules Engine you don’t want your business user to see all the Conditions and Actions. Conditions and Actions are also items (everything is a Item ;-)) so you can apply security on them. Deny a user Read access on a Condition or Action and the user will not see them in the Rule Set Editor.
Create the role Deny Conditions
Open the Role Editor and create a new Role called Deny Conditions. Click Members and Add the business users to the role. Close the Role Manager.
Open the Security Editor en select the created role Deny Conditions. Go to SystemSettingsRulesConditional RenderingsConditions and deny read rights on the conditions (or folder) you want to hide for the business user. Repeat this for conditions in SystemSettingsRulesCommonConditions.
Login as the business user and open the Rule Set Editor
Now test the settings and log-in as the business user, go to the Marketing Center and create a new conditional rendering rule. All the condition where the read access is denied are not in the Rule Set Editor.
At this point the business user will only see condition he/she can understand.
In this How to I will build a custom condition for the Sitecore Rules Enginge. This How To is a proof of concepts based on a webinar (in Dutch) about the Rules Engine. I presented this webinar earlier this year and you can watch the webinar on Youtube by clicking this link.
Before we start writing code I’ll explain the business case we are trying to resolve.
The business user want to personalize the website based on the website the visitor comes from (the http referrer). For now he is only interested in Facebook and Twitter.
If the visitor visits our site from Facebook the Facebook Like button of our own Facebook page must be visible on the homepage.
If the visitor visits our site from Twitter our Twitter Tweet stream must be visible on the homepage.
Oke, Now start building it!
Create a template called Sidebar Text, this template has two field; a Sidebar Title (Single-Line Text field) and a Sidebar Text (Rich Text field).
Create a template called Standaard Text, this template one field called Text (Multi-line Text).
Set up the content tree
Create a folder called Sidebars and add two Sidebar Text items with the following values: