Firefox disable plugin compatibility check

To disable the plugin compatibility check for Firefox 3.6 follow these steps:

  1. Open Firefox
  2. In the address bar type “about:config”
  3. On the page click I’ll be careful, I promise!
    image
  4. Right click and select new –> Boolean
  5. Enter the preference name: extensions.checkCompatibility.3.6 and press OK
  6. Select False and press OK

Now you can install plugins that aren’t compatible anymore (but might still work).

Sitecore Rules Engine: How to create an insert option rule

You can automatically add a insert option using a insert option rule in the Sitecore Rule Engine.

The ‘case’:
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:
sitecore rules engine insert option rule

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.
sitecore rules engine insert option rule result

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

[youtube]UWYTtDyM3WM[/youtube]

Cheers,
Pieter

Sitecore Rules Engine: How to remove conditions and actions

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.

Sitecore rule engine disable and hide conditions

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.

Sitecore rule engine disable and hide conditions result

At this point the business user will only see condition he/she can understand.

Sitecore Rules Engine: How to create a custom condition

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 ‘case’:
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 templates

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:

Create a folder called Http Referrers and add the following items:

  • Item name: Twitter
    • Text: twitter.com
  • Item name: Facebook
    • Text: facebook.com

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”

From BlogEngine.Net to WordPress

After blogging a long time on BlogEngine.Net I thought it was time to switch to WordPress. The conversion wasn’t great.

The biggest problem was that the syntax highlighter is not compatible and the image where not exported. But the content is here, excluding the images. I will try to clean it up and add the images and the syntax highlighter. And if everything is back online I will get back to the blogging.

Cheers,
Pieter

New Job: Solution Architect for Sitecore

As from the 1st of january I’m the new solution architect for Sitecore the Netherlands. My responsibilities wil be:

  • Technical Presentations and demonstrations
  • Providing Technical Trainings
  • Defining Sitecore architecture/blueprint for customer and partners
  • Developing CMS relevant (sales) propositions
  • Develop demo’s and POC with sales, product specialist and product development
  • Support local sales in responding to tenders/rfi/rfp
  • Keep relevant technical/market knowledge up to date
  • Advise customers & partners on how to best use Sitecore products

So from now on more blogging about Sitecore.

Design Patterns(C#): Basic example Strategy pattern

In this example I´m going to explane the strategy pattern. With this example you can do a calculation with two numbers (-/+) and expand the number of operators (/, *, etc.).

First create a interface which defines the interface of the operator classes. For this example an operator can only calculate two values.


//The interface for the strategies
public interface ICalculateInterface
{
//define method
int Calculate(int value1, int value2);
}

Next create the operators (strategies) Minus (which subtract value 2 from value 1) and Plussus (which addition value 1 with value 2). The classes need to inherit from the interface ICalculateInterface.


//Strategy 1: Minus
class Minus : ICalculateInterface
{
public int Calculate(int value1, int value2)
{
//define logic
return value1 - value2;
}
}

//Strategy 2: Plussus
class Plussus : ICalculateInterface
{
public int Calculate(int value1, int value2)
{
//define logic
return value1 + value2;
}
}

At last we need to create a Client that will execute the strategy.


//The client
class CalculateClient
{
private ICalculateInterface calculateInterface;

//Constructor: assigns strategy to interface
public CalculateClient(ICalculateInterface strategy)
{
calculateInterface = strategy;
}

//Executes the strategy
public int Calculate(int value1, int value2)
{
return calculateInterface.Calculate(value1, value2);
}
}

Now we have two operators (minus & plussus) and a client (CalculateClient) that can execute the operators. Let’s test the code. Create a new webapplication, console app or something else that can write output. For this example I will use a webpage.

Initialize a new CalculateClient with argument operator Minus of Plussus and Calculate two values.


protected void Page_Load(object sender, EventArgs e)
{
CalculateClient minusClient = new CalculateClient(new Minus());
Response.Write("<br />Minus: " + minusClient.Calculate(7, 1).ToString());

CalculateClient plusClient = new CalculateClient(new Plussus());
Response.Write("<br />Plussus: " + plusClient.Calculate(7, 1).ToString());
}

This code will give the following output.


<br />Minus: 6
<br />Plussus: 8

The great thing about this pattern is that you can easily add new opertators (strategies) to your code.

Cheers,
Pieter