public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if ("placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { var argument = args.CustomData["placeHolderKey"] as string; var placeholderKey = argument; if (PlaceholderKeyHelper.IsDynamicPlaceholder(placeholderKey)) { placeholderKey = PlaceholderKeyHelper.ExtractPlaceholderKey(placeholderKey); } else { return; } // Handles replacing the displayname of the placeholder area to the master reference if (args.Item != null) { var layout = ChromeContext.GetLayout(args.Item); var item = global::Sitecore.Client.Page.GetPlaceholderItem(placeholderKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; } if (!string.IsNullOrEmpty(item?.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } } } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, nameof(args)); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!"placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { return; } var placeholderKey = args.CustomData["placeHolderKey"] as string; Assert.IsNotNull(placeholderKey, "CustomData[\"{0}\"]", "placeHolderKey"); var lastPart = StringUtil.GetLastPart(placeholderKey, '/', placeholderKey); args.ChromeData.DisplayName = lastPart; AddButtonsToChromeData(GetButtons("/sitecore/content/Applications/WebEdit/Default Placeholder Buttons"), args); var placeholderItem = (Item)null; var hasPlaceholderSettings = false; if (args.Item != null) { var layout = ChromeContext.GetLayout(args.Item); var placeholderRenderingsArgs = new GetPlaceholderRenderingsArgs(placeholderKey, layout, args.Item.Database) { OmitNonEditableRenderings = true }; //add full dynamic placeholder key to reference in applicable rules placeholderRenderingsArgs.CustomData.Add("fullPlaceholderKey", placeholderKey); CorePipeline.Run("getPlaceholderRenderings", placeholderRenderingsArgs); hasPlaceholderSettings = placeholderRenderingsArgs.HasPlaceholderSettings; var getRenderingList = placeholderRenderingsArgs.PlaceholderRenderings != null ? placeholderRenderingsArgs.PlaceholderRenderings.Select(i => i.ID.ToShortID().ToString()).ToList() : new List <string>(); args.ChromeData.Custom.Add("allowedRenderings", getRenderingList); placeholderItem = Client.Page.GetPlaceholderItem(placeholderRenderingsArgs.PlaceholderKey, args.Item.Database, layout); args.ChromeData.DisplayName = placeholderItem == null?StringUtil.GetLastPart(placeholderRenderingsArgs.PlaceholderKey, '/', placeholderRenderingsArgs.PlaceholderKey) : HttpUtility.HtmlEncode(placeholderItem.DisplayName); if (placeholderItem != null && !string.IsNullOrEmpty(placeholderItem.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = HttpUtility.HtmlEncode(placeholderItem.Appearance.ShortDescription); } } else { args.ChromeData.Custom.Add("allowedRenderings", new List <string>()); } var isEditable = (placeholderItem == null || placeholderItem["Editable"] == "1") && Settings.WebEdit.PlaceholdersEditableWithoutSettings | hasPlaceholderSettings; args.ChromeData.Custom.Add("editable", isEditable.ToString().ToLowerInvariant()); }
/// /// Instead of calling ChromeContext.GetLayout(layoutItem) every time, we store it in the request so we only need to do it once /// /// /// protected virtual string GetCachedLayout(Item layoutItem) { var layoutCacheKey = string.Format("edit-layout-item-{0}", layoutItem.ID.Guid.ToString("N")); var layout = Context.Items[layoutCacheKey] as string ?? ChromeContext.GetLayout(layoutItem); Context.Item[layoutCacheKey] = layout; return(layout); }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!"placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { return; } var argument = args.CustomData["placeHolderKey"] as string; var placeholderKey = argument; var regex = new Regex(DynamicKeyRegex); Debug.Assert(placeholderKey != null, "placeholderKey != null"); var match = regex.Match(placeholderKey); if (match.Success && match.Groups.Count > 0) { // Is a Dynamic Placeholder placeholderKey = match.Groups[1].Value; } else { return; } // Handles replacing the displayname of the placeholder area to the master reference if (args.Item == null) { return; } var layout = ChromeContext.GetLayout(args.Item); var item = Sitecore.Client.Page.GetPlaceholderItem(placeholderKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; } if ((item != null) && !string.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!args.ChromeType.Equals("placeholder", StringComparison.InvariantCultureIgnoreCase)) { return; } var placeholderKey = (string)args.CustomData["placeHolderKey"]; if (string.IsNullOrEmpty(placeholderKey)) { return; } var regex = new Regex(GetDynamicKeyAllowedRenderings.DynamicKeyRegex); var match = regex.Match(placeholderKey); if (!match.Success || match.Groups.Count <= 0) { return; } var newPlaceholderKey = match.Groups[1].Value; if (args.Item == null) { return; } var layout = ChromeContext.GetLayout(args.Item); var item = Client.Page.GetPlaceholderItem(newPlaceholderKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; } if ((item != null) && !string.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!"placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { return; } var argument = args.CustomData["placeHolderKey"] as string; string placeholderKey; string placeholderIndex; if (!DynamicPlaceholderKeyProvider.TryGetValue(argument, out placeholderKey, out placeholderIndex)) { return; } if (args.Item == null) { return; } var layout = ChromeContext.GetLayout(args.Item); var item = Client.Page.GetPlaceholderItem(placeholderKey, args.Item.Database, layout); if (item == null) { return; } args.ChromeData.DisplayName = item.DisplayName; if (!string.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if ("placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { string argument = args.CustomData["placeHolderKey"] as string; string placeholderKey = argument; Regex regex = new Regex(DYNAMIC_KEY_REGEX); Match match = regex.Match(placeholderKey); if (match.Success && match.Groups.Count > 0) { // Is a Dynamic Placeholder placeholderKey = placeholderKey.Contains("/") ? placeholderKey.Split('/')[1] : match.Groups[1].Value; } else { return; } // Handles replacing the displayname of the placeholder area to the master reference Item item = null; if (args.Item != null) { string layout = ChromeContext.GetLayout(args.Item); item = Client.Page.GetPlaceholderItem(placeholderKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; } if ((item != null) && !string.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } } } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!"placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { return; } string placeholderKey = args.CustomData["placeHolderKey"] as string; if (!string.IsNullOrEmpty(placeholderKey) && placeholderKey.Contains('|')) { string[] arrKey = placeholderKey.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); if (arrKey != null && arrKey.Length > 1) { placeholderKey = arrKey[0]; } } // Handles Replacing the Displayname of the Placeholder area Item item = null; if (args.Item != null) { string layout = ChromeContext.GetLayout(args.Item); item = Sitecore.Client.Page.GetPlaceholderItem(placeholderKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; } if ((item != null) && !string.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!"placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { return; } // Get the placeholder key values string dynamicKey = args.CustomData["placeHolderKey"] as string; Regex regex = new Regex(GetDynamicKeyPlaceholderAllowedRenderings.DYNAMIC_KEY_REGEX); Match match = regex.Match(dynamicKey); if (!match.Success || match.Groups.Count <= 0) { return; } string normalKey = match.Groups[1].Value; // Format up some Chrome Item item = null; if (args.Item != null) { string layout = ChromeContext.GetLayout(args.Item); item = Sitecore.Client.Page.GetPlaceholderItem(normalKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; if (!String.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } } } }
public override void Process(GetChromeDataArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.IsNotNull(args.ChromeData, "Chrome Data"); if (!"placeholder".Equals(args.ChromeType, StringComparison.OrdinalIgnoreCase)) { return; } string placeholderKey = args.CustomData["placeHolderKey"] as string; Regex regex = new Regex(GetDynamicKeyAllowedRenderings.DYNAMIC_KEY_REGEX); Match match = regex.Match(placeholderKey); if (!match.Success || match.Groups.Count <= 0) { return; } string newPlaceholderKey = match.Groups[1].Value; // Handles replacing the displayname and description of the placeholder area to the master reference without changeing other references Item item = null; if (args.Item != null) { string layout = ChromeContext.GetLayout(args.Item); item = Sitecore.Client.Page.GetPlaceholderItem(newPlaceholderKey, args.Item.Database, layout); if (item != null) { args.ChromeData.DisplayName = item.DisplayName; } if ((item != null) && !string.IsNullOrEmpty(item.Appearance.ShortDescription)) { args.ChromeData.ExpandedDisplayName = item.Appearance.ShortDescription; } } }