public override void Execute(CommandContext context) { string formValue = WebUtil.GetFormValue("scLayout"); string xml = WebEditUtil.ConvertJSONLayoutToXML(formValue); string id = ShortID.Decode(WebUtil.GetFormValue("scDeviceID")); LayoutDefinition layoutDefinition = LayoutDefinition.Parse(xml); if (layoutDefinition == null) { ReturnLayout(); return; } DeviceDefinition device = layoutDefinition.GetDevice(id); if (device == null) { ReturnLayout(); return; } string uniqueId = Guid.Parse(context.Parameters["renderingUid"]).ToString("B").ToUpperInvariant(); RenderingDefinition renderingByUniqueId = device.GetRenderingByUniqueId(uniqueId); if (renderingByUniqueId == null) { ReturnLayout(); return; } if (string.IsNullOrEmpty(renderingByUniqueId.Parameters)) { if (!string.IsNullOrEmpty(renderingByUniqueId.ItemID)) { RenderingItem renderingItem = Client.ContentDatabase.GetItem(renderingByUniqueId.ItemID); renderingByUniqueId.Parameters = ((renderingItem != null) ? renderingItem.Parameters : string.Empty); } else { renderingByUniqueId.Parameters = string.Empty; } } NameValueCollection nameValueCollection = WebUtil.ParseUrlParameters(renderingByUniqueId.Parameters); string input = nameValueCollection["FieldNames"]; string text = context.Parameters["variant"]; if (Guid.TryParse(input, out Guid result) && result == Guid.Parse(text)) { ReturnLayout(); return; } nameValueCollection["FieldNames"] = text; renderingByUniqueId.Parameters = new UrlString(nameValueCollection.EscapeDataValues()).GetUrl(); formValue = WebEditUtil.ConvertXMLLayoutToJSON(layoutDefinition.ToXml()); ReturnLayout(formValue); }
public override void Execute(CommandContext context) { var id = ShortID.Decode(WebUtil.GetFormValue("scDeviceID")); var layoutDefinition = GetLayoutDefinition(); if (layoutDefinition == null) { this.ReturnLayout(); } else { var device = layoutDefinition.GetDevice(id); if (device == null) { this.ReturnLayout(); } else { var renderingByUniqueId = device.GetRenderingByUniqueId(context.Parameters["referenceId"]); if (renderingByUniqueId == null) { this.ReturnLayout(); } else { if (string.IsNullOrEmpty(renderingByUniqueId.Parameters)) { if (!string.IsNullOrEmpty(renderingByUniqueId.ItemID)) { var renderingItem = (RenderingItem)Sitecore.Client.ContentDatabase.GetItem(renderingByUniqueId.ItemID); renderingByUniqueId.Parameters = renderingItem != null ? renderingItem.Parameters : string.Empty; } else { renderingByUniqueId.Parameters = string.Empty; } } var parameters = WebUtil.ParseUrlParameters(renderingByUniqueId.Parameters); parameters[this.ParamKey] = this.ParamValue as string; renderingByUniqueId.Parameters = new UrlString(parameters).GetUrl(); this.ReturnLayout(WebEditUtil.ConvertXMLLayoutToJSON(layoutDefinition.ToXml())); } } } }
/// <summary> /// Get Layout /// </summary> /// <param name="layout"> /// The layout. /// </param> /// <returns> /// returns layout as string /// </returns> private static string GetLayout(string layout) { Assert.ArgumentNotNull(layout, "layout"); return(WebEditUtil.ConvertXMLLayoutToJSON(layout)); }