/ sitecore 8

Place Holder Settings Stored as Absolute Paths in Renderings Field

While doing refactoring on a Sitecore 8 project recently I noticed some strange behavior with place holder settings when applied as standard values. The behavior manifested itself while reorganizing placeholder settings, after moving placeholder settings the content items that these placeholder settings were applied to suddenly stopped working and had broken links. After looking into the issue a bit further, in particular the renderings field I noticed something strange.

<p uid="{75CBC71B-E72D-410E-A4E6-9693C44A0B62}" key="threeColumnMiddle" md="/sitecore/layout/Placeholder Settings/My Place Holder" />

The reference to the place holder setting was being stored as a path instead of a Guid! This is obviously extremely problematic if you ever want to move or rename your place holder settings. After submitting a Sitecore support ticket, it was confirmed that this is in fact a bug.

Sitecore did provide me with an update patch that seems to have resolved the issue, hopefully this will make it in to a point release soon. Anyone interested in requesting the patch for this, you should be able to refer to Sitecore.Support.440335 when opening your ticket.

For anyone interested in reproducing the issue feel tree to try it yourself with the steps below:

Steps to reproduce:
  • In Content editor navigate to a standard values item of a data temple.
  • Reset standard values for both final and shared verions.
  • Open presentation details
  • Add a placeholder setting to the data template in the shared presentation details.
  • Save
  • View raw values of shared layout field
  • Take the placeholder that you set to the standard values item and move it in the sitecore tree.
  • Now save the original standard values item again and the following error message will appear:
    The item "__Standard Values" contains broken links in these fields: - Final renderings: "/sitecore/layout/Placeholder Settings/My Place Holder" - Renderings: "/sitecore/layout/Placeholder Settings/My Place Holder" Do you want to save anyway?