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:
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.
This article is based on a Webinar (in Dutch) I did about the Site Rules Engine you can see the Webinar on YouTube and read the related post: Sitecore Rules Engine: How to create a custom condition
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:
- Item Name: Default Message
- Sidebar Title: Default Message.
- Sidebar Text: This is the default message.
- Item Name: Twitter
- Item Name: Facebook
Create a folder called Http Referrers and add the following items:
- Item name: Twitter
- Item name: Facebook
Create presentation component
Create the Sidebar Text rendering for displaying the Sidebar Title and Sidebar Text.
Open development center and click Create a New XSLT rendering and name the rendering Sidebar Text. Add the following code to the rendering template:
Continue reading “Sitecore Rules Engine: How to create a custom condition”