Sean Holmesby

.NET and Sitecore Developer

By

A fix for the Sitecore 7.1 Upgrade Process

This is a fix for the Sitecore 7.1 upgrade process, where Rules fields may not have their Source (Rules Context) updated correctly during the upgrade. The fix was originally posted on my Github repo and should be used when upgrading from Sitecore 7.0 to Sitecore 7.1.
It has been assessed and approved by Sitecore Support.

How to Fix the normal process

Follow the initial steps (Steps 1 to 9) in the Sitecore update installation instructions here.
Before installing the Sitecore 7.1 update package in the Update Installation Wizard (Step 10,11):-

  • copy the Hedgehog.SC71Upgrade.DLL file from the __install files directory into your Website’s /bin directory.
  • make a change to the App_Config/FieldTypes.config file with the following change.
    • change
      <fieldType name="Rules" type="Sitecore.Data.Fields.TextField,Sitecore.Kernel" resizable="true" />
      to
      <fieldType name="Rules" type="Hedgehog.SC71Upgrade.Data.Fields.RulesField,Hedgehog.SC71Upgrade" resizable="true" />
    • Note: This change can be seen in the example file located here __install files/FieldTypes.config.
  • Now install the normal update package (Step 10,11 in the Sitecore update installation instructions) and complete the remaining steps for the upgrade.

Read More

By

How to fix missing Conditions and Actions in Rules fields in Sitecore 7.1

Update: I found a bug in the Sitecore 7.1 Upgrade Process that causes the issue mentioned in this post. An explanation and a fix for the process can be found at my Github repository, https://github.com/SaintSkeeta/Hedgehog.SC71Upgrade.

I previously posted about the Sitecore Upgrade ‘Post Step’ code that gets executed on items when upgrading Sitecore to a newer version. The Post Step code in the Sitecore 7.1 upgrade processes the Conditions and Actions items for Rules fields…meaning your existing Rules fields may be affected during the upgrade process.

When Sitecore 7.1 was released Adam Conn wrote a blog post about the changes to how Rules work in the new update. With everything shifted around in the content tree, I knew there would be some sort of Post Step to update existing Rules items.

My LaunchSitecoreTDS repo (taken from the Launch Sitecore demo site) has a custom action that automates the enrollment of a user in an engagement plan, so with the package originally being built for Sitecore 7.0, something was going to happen with the items when upgrading to Sitecore 7.1.

The ‘Enroll in Automation State’ item had moved from:-

/sitecore/system/Settings/Rules/Common/Actions
to
/sitecore/system/Settings/Rules/Definitions/Elements/Custom

The action was originally setup to be executed on the Register Goal in the Marketing Center.
But now Rules fields respond to their ‘Rules Context’ (their Source on the field), allowing developers to limit what conditions and actions are available for a given rules field….
So now our custom action cannot be added to any other similar Page Events we setup, because it isn’t set as the Source for any field. Read More

By

Sitecore Upgrade Post Step Scripts

Charlie Turano recently told me a lesser known fact about Sitecore’s upgrade process. There is a block of code that gets executed to update existing items in the database. This is what’s known as an installation ‘Post Step’, and it gets triggered after the new or changed items are added to the database.

For example, Sitecore 6.5 updated the ‘Placeholder Settings’ items to have a new ‘Placeholder Key’ field.
01 - Placeholder settings extra field Read More

By

DataFolder config patch for Sitecore Instance Manager (SIM) installs

The Sitecore Instance Manager (SIM) tool is a fantastic tool for quickly setting up local Sitecore installations. I love using it for quick setup when sandbox testing features, or new shared source modules from the community.
It’s so simple that you just click on the ‘Install Instance’ button, fill out the information for the site you want, and off it goes, extracting the webroot, attaching databases, setting up IIS and everything. It’s great!

01 - SIM Install

One thing I found when setting up my sites was that the Data folder was saved within the actual Web.Config, as opposed to it being patched in with an App_Config/Include file.

Read More

By

Sitecore Glass Mapper Data Handler for a Link List field

Here’s a way to map a custom Link List field in Sitecore to Glass.Mapper.Sc, for easy usage.
The following was used for Monoco’s Link List field but can also be used with the Field Suite’s General Links field by Velir, as it stores the same raw value.
(Note: for Monoco’s Link List field, it’s better to download the LinkList package from the Monoco site than the Sitecore Marketplace, as the Marketplace version is outdated at the time of writing this post).
LinkList

For more information on Data Handlers, check out the Data Handler tutorial on the Glass Mapper website here.
Read More

By

The Launch Sitecore Site using TDS

The Launch Sitecore site is a great shared source site that allows Sitecore editors and developers to check out a complete Page Editor and DMS friendly Sitecore solution. The site comes complete with Engagement Plans, User Profiles and Lucene Indexing, and the code and content can be downloaded by registering on the site, then going to the /download page.
Launch Sitecore

While playing around with the site, I wanted to have a play with a couple of things from the development side of things. I wanted to teach myself things with:-

As a result, I have created a GitHub repository that has the code from the Sitecore package in a Web Application solution, and have converted all of the items in the package into serialised items in TDS.
You can grab the repo from here:-
https://github.com/SaintSkeeta/LaunchSitecoreTDS

Read More

By

A little Razl Tip to help your efficiency

I’ve been using Razl a lot lately, and if you’re not also, you should definitely check it out.

I’m creating components with test data, which is being included in the TDS project, but being excluded from production builds. This means that I can create components and have test content available for debugging, and other developers can get the sites running locally with no visual issues.

Sometimes I may even have complete content on my local instance… where I’ve tested and confirmed it’s working, and the request will come in to push that to production. The request, of course, will come while you’re midway through programming another component…. so I want to save any time I can doing the push, and get back to my programming.

Read More

By

Sitecore Package ‘Installation was aborted by user’

Ever seen this error in Sitecore?

Installation aborted

Installation aborted

I have seen this all too often…. even when I haven’t cancelled the installation.
I always thought it was an error with my instance….and ended up installing the package via another means (Sitecore Rocks).

Mike Edwards quickly mentioned the issue to me when I was screen sharing with him about some other issue, and this came up. It was one of those ‘I can’t believe I didn’t know that’ moments.

Turns out the error is shown when files are being overwritten, and a popup window is attempted to be shown by Sitecore to allow you to overwrite the file.
If popups are blocked in the browser, the installation fails with this error.

I never knew this because sometimes the popup blocker notification isn’t shown very obviously in Chrome (see image below).

To fix this, click on the popup blocker notification to the right of the address bar, and allow popups.

popup blocker

Then reinstall the package, and you’re good to go.

By

Sitecore Development Tools

Last week I was honored to be a part of the Sitecore Development Tools Round Table discussion at the 2013 Sitecore Users Virtual Summit. Talking with a team of seasoned Sitecore developers, we discussed the tools and add-ons that we each use during our everyday Sitecore development.

Read More

By

Setting the Item SortOrder value in Sitecore Rocks Query Analyzer

This post discusses how you can utilize the Sitecore Rocks Query Analyzer to set the sort order of items in the Sitecore Content Management System.

In Sitecore, items are sorted by their value stored in the Standard Field __Sortorder. Typically, when adding items, Sitecore will separate these values by 100. Then when an item is resorted, Sitecore will determine where it is sorted to, and adjust it’s __Sortorder value accordingly. Usually this means splitting the difference between the sort order values of the items it has been placed in between.
01 - Sort Value

After many sort order changes, it’s possible that Sitecore will find it has run out of integers that it can split, so it will change all of the sort order values of the items to be 100 apart again, still keeping the same relative order.

It’s ok to be negative

One thing I found recently was that the __Sortorder field can contain negative values, and still function properly. You can manually set -5000 in the __Sortorder field on an item, and be fairly confident that it’ll be sorted to the top.

Even if you move an item above one that’s been set with a negative value, Sitecore will use a more negative value to ensure it can keep the order of items in check.

So when is this useful?

Sometimes reordering can be a tedious process, particularly if you have the same structure in multiple places.
Also, clicking and dragging each item, can be time consuming.
So how can you speed up the process?
You can write specific sort order code if you want them all the same. But that will require a build, and will always keep the sort order fixed to the way the code intends, not allowing manual changes later.

Or, if you just want to set it once, you can utilize the inline editing feature of the Sitecore Rocks Query Analyzer result set.

Grab all the items you’re after, displaying the __Sortorder field in the results.
02 - Query Analyzer results

Double click the cells for the items and set them to negative values.
03 - Editing Sort Order

Once that’s done you can refresh the content tree and see your items resorted the way you want them.
04 - Sorted items