private IEnumerable <TemplateField> GetRelevantTemplateFields( RenderingDefinition renderingDefinition) { Item renderingItem = GetRenderingItem(renderingDefinition); string text = renderingItem["Parameters Template"]; if (string.IsNullOrEmpty(text)) { text = CustomRenderingParameters.StandardRenderingParametersTemplateId.ToString(); } TemplateItem templateItem = renderingItem.Database.GetItem( new ID(text), renderingItem.Language); Template template = TemplateManager.GetTemplate( templateItem.ID, templateItem.Database); if (templateItem == null) { return(new List <TemplateField>()); } IEnumerable <TemplateField> relevantFields = template.GetFields(true).Where(CustomRenderingParameters.IsDataField); return(relevantFields); }
/// <summary> /// Gets the value. /// </summary> /// <param name="fieldName"> /// The name. /// </param> /// <param name="renderingDefinition"> /// The rendering definition. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <returns> /// The value. /// </returns> private static string GetValue( string fieldName, RenderingDefinition renderingDefinition, Dictionary <string, string> parameters) { Assert.ArgumentNotNull(fieldName, "fieldName"); Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); Assert.ArgumentNotNull(parameters, "parameters"); switch (fieldName.ToLowerInvariant()) { case "placeholder": return(renderingDefinition.Placeholder ?? string.Empty); case "data source": return(renderingDefinition.Datasource ?? string.Empty); case "caching": return(GetCaching(renderingDefinition)); case "personalization": return(renderingDefinition.Conditions ?? string.Empty); case "tests": return(renderingDefinition.MultiVariateTest ?? string.Empty); default: parameters.TryGetValue(fieldName, out string value); return(value); } }
public void AddRendering(Item item, string renderingID, string placeholder, Item datasource) { LayoutField layoutField = new LayoutField(item.Fields[FieldIDs.FinalLayoutField]); LayoutDefinition layoutDefinition = LayoutDefinition.Parse(layoutField.Value); DeviceDefinition deviceDefinition = layoutDefinition.GetDevice(GetDefaultDeviceItem(item.Database).ID.ToString()); foreach (RenderingDefinition rendering in deviceDefinition.Renderings) { if (rendering.ItemID.ToLower() == "{C1624533-ED68-41AC-B03C-BFDE4D9B1F2A}".ToLower()) { placeholder = StringUtil.EnsurePrefix('/', rendering.Placeholder + "/" + placeholder + "_" + new Guid(rendering.UniqueId).ToString("D").ToLower()); break; } } var newRendering = new RenderingDefinition { Placeholder = placeholder, ItemID = renderingID, Datasource = datasource.ID.ToString() }; deviceDefinition.AddRendering(newRendering); using (new SecurityDisabler()) { item.Editing.BeginEdit(); layoutField.Value = layoutDefinition.ToXml(); item.Editing.EndEdit(); } }
/// <summary> /// Sets the custom parameters. /// </summary> /// <param name="renderingDefinition">The rendering definition.</param> /// <param name="options">The options.</param> private void SetCustomParameters( RenderingDefinition renderingDefinition, RenderingParametersFieldEditorOptions options) { Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); Assert.ArgumentNotNull(options, "options"); Item item = (renderingDefinition.ItemID != null) ? Client.ContentDatabase.GetItem(renderingDefinition.ItemID) : null; if (item != null) { options.Parameters["rendering"] = item.Uri.ToString(); } if (Item != null) { options.Parameters["contentitem"] = Item.Uri.ToString(); } if (WebEditUtil.IsRenderingPersonalized(renderingDefinition)) { options.Parameters["warningtext"] = "There are personalization conditions defined for this control. Changing control properties may effect them."; } if (!string.IsNullOrEmpty(renderingDefinition.MultiVariateTest)) { options.Parameters["warningtext"] = "There is a multivariate test set up for this control. Changing control properties may effect the test."; } }
protected override void ProcessItem(Item item) { var rendering = new RenderingDefinition { ItemID = item.ID.ToString(), Placeholder = PlaceHolder, Datasource = DataSource?.ID.ToString(), Cachable = Cacheable ? "1" : null, ClearOnIndexUpdate = ClearOnIndexUpdate ? "1" : null, VaryByData = VaryByData ? "1" : null, VaryByDevice = VaryByDevice ? "1" : null, VaryByLogin = VaryByLogin ? "1" : null, VaryByParameters = VaryByParameters ? "1" : null, VaryByQueryString = VaryByQueryString ? "1" : null, VaryByUser = VaryByUser ? "1" : null }; if (Parameter != null) { var parameters = new UrlString(); foreach (string name in Parameter.Keys) { parameters.Add(name, Parameter[name].ToString()); } rendering.Parameters = parameters.ToString(); } //todo: add support for conditions //renderingDefinition.Conditions //todo: add support for multivariate tests //rendering.MultiVariateTest var psobj = ItemShellExtensions.WrapInItemOwner(SessionState, item, rendering); WriteObject(psobj); }
// REMOVED THIS since new configuration for placeholders is sufficient to check if rendering is dynamic //public override bool IsDynamic(RenderingDefinition rendering) //{ // return SxaProcessor.RenderingsWithDynamicPlaceholders.Contains(rendering.ItemID); //} public override int NextDynamicId(RenderingDefinition renderingDefinition, IEnumerable <RenderingDefinition> renderings) { int num = 0; if (renderings == null || !renderings.Any()) { return(1); } foreach (RenderingDefinition renderingDefinition1 in renderings.Where((RenderingDefinition r) => { if (r == null || r.UniqueId == renderingDefinition.UniqueId) { return(false); } if (r.ItemID == renderingDefinition.ItemID) { return(true); } return(SxaProcessor.AreCompatibleRenderings(renderingDefinition, r)); })) { if (string.IsNullOrEmpty(renderingDefinition1.Parameters)) { continue; } int num1 = (int.TryParse(WebUtil.ParseUrlParameters(renderingDefinition1.Parameters)[DynamicPlaceholderIdParam], out num1) ? num1 : num); if (num1 <= num) { continue; } num = num1; } return(num + 1); }
///<summary> /// When working with the Presentation Layer for Sitecore, you can specify a Datasource as a property /// for a control. However, accessing the item that is set brings a bit of a challenge. Hopefully this fixes that. ///</summary> ///<param name = "database">Sitecore Database to Use. Usually From Context.</param> ///<param name = "device">Sitecore Device to Use. Usually from Context.</param> ///<param name = "item">Item to get the Layout Renderings from.</param> ///<param name = "sublayoutItem"> /// Item reference to the Sublayout or Webcontrol that you would like to use for getting the datasource from. ///</param> ///<returns>Datasource Item. If no Datasource Item is listed in the layout properties, returns Null.</returns> ///<exception cref = "ItemNotFoundException">Thrown when Sitecore can't find a specified datasource item entry.</exception> public static Item GetDatasourceFromControl(Database database, DeviceItem device, Item item, Item sublayoutItem) { Item datasourceItem = null; // Get the Layout definition from the current item string rend = item.Fields["__renderings"].Value; LayoutDefinition layout = LayoutDefinition.Parse(rend); // Get the current device definition DeviceDefinition deviceDef = layout.GetDevice(device.ID.ToString()); // Get the sublayout to find Item mySublayout = database.GetItem(sublayoutItem.ID); // Get the definition for the sublayout RenderingDefinition rendering = deviceDef.GetRendering(mySublayout.ID.ToString()); if (!String.IsNullOrEmpty(rendering.Datasource)) { datasourceItem = database.GetItem(rendering.Datasource); if (datasourceItem == null) { throw new ItemNotFoundException("Could not find datasource item at " + rendering.Datasource); } } return(datasourceItem); }
public void Process(PipelineArgs args) { Assert.ArgumentNotNull((object)args, "args"); IInsertRenderingArgs insertRenderingArgs = args as IInsertRenderingArgs; if (insertRenderingArgs == null) return; Item renderingItem = insertRenderingArgs.RenderingItem; Assert.IsNotNull((object)renderingItem, "renderingItem"); string placeholderKey = insertRenderingArgs.PlaceholderKey; Assert.IsNotNullOrEmpty(placeholderKey, "placeholderKey"); string lastPart = StringUtil.GetLastPart(placeholderKey, '/', placeholderKey); string[] arrKey = lastPart.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); string lastPartKey = arrKey[0]; RenderingDefinition renderingDefinition = new RenderingDefinition() { ItemID = renderingItem.ID.ToString(), Placeholder = lastPartKey }; if (insertRenderingArgs.Datasource != null) renderingDefinition.Datasource = insertRenderingArgs.Datasource.ID.ToString(); Assert.IsNotNull((object)insertRenderingArgs.Device, "device"); this.InsertRenderingAt(insertRenderingArgs.Device, renderingDefinition, insertRenderingArgs.Position, insertRenderingArgs.AllowedRenderingsIds, arrKey[1]); insertRenderingArgs.Result = new RenderingReference(renderingDefinition, insertRenderingArgs.Language, insertRenderingArgs.ContentDatabase); }
protected virtual RenderingDefinition DoReplaceRendering( RenderingDefinition sourceRendering, RenderingDefinition targetRendering, DeviceDefinition device) { var renderingDefinition = new RenderingDefinition { Cachable = sourceRendering.Cachable, Conditions = sourceRendering.Conditions, Datasource = sourceRendering.Datasource, ItemID = targetRendering.ItemID, MultiVariateTest = sourceRendering.MultiVariateTest, Parameters = sourceRendering.Parameters, Placeholder = sourceRendering.Placeholder, Rules = sourceRendering.Rules, VaryByData = sourceRendering.VaryByData, ClearOnIndexUpdate = sourceRendering.ClearOnIndexUpdate, VaryByDevice = sourceRendering.VaryByDevice, VaryByLogin = sourceRendering.VaryByLogin, VaryByParameters = sourceRendering.VaryByParameters, VaryByQueryString = sourceRendering.VaryByQueryString, VaryByUser = sourceRendering.VaryByUser }; if (device.Renderings == null) { return(renderingDefinition); } var index = device.Renderings.IndexOf(sourceRendering); device.Renderings.RemoveAt(index); device.Renderings.Insert(index, renderingDefinition); return(renderingDefinition); }
/// <summary> /// Sets the caching. /// </summary> /// <param name="renderingDefinition"> /// The rendering definition. /// </param> /// <param name="value"> /// The value. /// </param> private static void SetCaching(RenderingDefinition renderingDefinition, string value) { Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); Assert.ArgumentNotNull(value, "value"); if (string.IsNullOrEmpty(value)) { value = "0|0|0|0|0|0|0|0"; } string[] array = value.Split('|'); Assert.IsTrue(array.Length == 8, "Invalid caching value format"); renderingDefinition.Cachable = ((array[0] == "1") ? "1" : ((renderingDefinition.Cachable != null) ? "0" : null)); renderingDefinition.ClearOnIndexUpdate = ((array[1] == "1") ? "1" : ((renderingDefinition.ClearOnIndexUpdate != null) ? "0" : null)); renderingDefinition.VaryByData = ((array[2] == "1") ? "1" : ((renderingDefinition.VaryByData != null) ? "0" : null)); renderingDefinition.VaryByDevice = ((array[3] == "1") ? "1" : ((renderingDefinition.VaryByDevice != null) ? "0" : null)); renderingDefinition.VaryByLogin = ((array[4] == "1") ? "1" : ((renderingDefinition.VaryByLogin != null) ? "0" : null)); renderingDefinition.VaryByParameters = ((array[5] == "1") ? "1" : ((renderingDefinition.VaryByParameters != null) ? "0" : null)); renderingDefinition.VaryByQueryString = ((array[6] == "1") ? "1" : ((renderingDefinition.VaryByQueryString != null) ? "0" : null)); renderingDefinition.VaryByUser = ((array[7] == "1") ? "1" : ((renderingDefinition.VaryByUser != null) ? "0" : null)); }
/// <summary> /// Renders the renderings. /// /// </summary> /// <param name="output">The output.</param><param name="list">The list.</param> private void RenderRenderings(HtmlTextWriter output, List <RenderingDefinition> list) { Assert.ArgumentNotNull((object)output, "output"); Assert.ArgumentNotNull((object)list, "list"); for (int index = 0; index < list.Count; ++index) { RenderingDefinition renderingDefinition = list[index]; string itemId = renderingDefinition.ItemID; if (!string.IsNullOrEmpty(itemId)) { Item rendering = Sitecore.Context.Database.GetItem(itemId); if (rendering != null) { if (Placeholder72.IsSublayout(rendering)) { this.RenderSublayout(output, rendering, renderingDefinition, index); } else { this.RenderRendering(output, rendering, renderingDefinition, index); } } } } }
protected virtual int ConvertPosition(DeviceDefinition device, string targetPlaceholder, int insertPosition) { Assert.ArgumentNotNull(device, "device"); if (insertPosition == 0 || device.Renderings == null) { return(0); } int num = 0; for (int i = 0; i < device.Renderings.Count; i++) { RenderingDefinition item = device.Renderings[i] as RenderingDefinition; Assert.IsNotNull(item, "rendering"); string placeholder = item.Placeholder; if (AreEqualPlaceholders(placeholder, targetPlaceholder)) { num++; } if (num == insertPosition) { return(i + 1); } } return(device.Renderings.Count); }
/// <summary> /// Updates the state of the commands. /// </summary> private void UpdateRenderingsCommandsState() { if (this.SelectedIndex < 0) { this.ChangeButtonsState(true); return; } LayoutDefinition layoutDefinition = DeviceEditorForm.GetLayoutDefinition(); DeviceDefinition device = layoutDefinition.GetDevice(this.DeviceID); System.Collections.ArrayList renderings = device.Renderings; if (renderings == null) { this.ChangeButtonsState(true); return; } RenderingDefinition renderingDefinition = renderings[this.SelectedIndex] as RenderingDefinition; if (renderingDefinition == null) { this.ChangeButtonsState(true); return; } this.ChangeButtonsState(false); this.Personalize.Disabled = !string.IsNullOrEmpty(renderingDefinition.MultiVariateTest); this.Test.Disabled = DeviceEditorForm.HasRenderingRules(renderingDefinition); }
protected void SortUp(Message message) { Assert.ArgumentNotNull(message, "message"); if (this.SelectedIndex <= 0) { return; } LayoutDefinition layoutDefinition = DeviceEditorForm.GetLayoutDefinition(); DeviceDefinition device = layoutDefinition.GetDevice(this.DeviceID); System.Collections.ArrayList renderings = device.Renderings; if (renderings == null) { return; } RenderingDefinition renderingDefinition = renderings[this.SelectedIndex] as RenderingDefinition; if (renderingDefinition == null) { return; } renderings.Remove(renderingDefinition); renderings.Insert(this.SelectedIndex - 1, renderingDefinition); this.SelectedIndex--; DeviceEditorForm.SetDefinition(layoutDefinition); this.Refresh(); }
public ReplaceRenderingRuleContext(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device) : base(new ID(sourceRendering.ItemID)) { SourceRendering = sourceRendering; TargetRenderingItem = targetRenderingItem; Device = device; }
protected void SortUp(Message message) { Assert.ArgumentNotNull((object)message, "message"); if (this.SelectedIndex <= 0) { return; } LayoutDefinition layoutDefinition = CustomDeviceEditor.GetLayoutDefinition(); ArrayList renderings = layoutDefinition.GetDevice(this.DeviceID).Renderings; if (renderings == null) { return; } RenderingDefinition renderingDefinition = renderings[this.SelectedIndex] as RenderingDefinition; if (renderingDefinition == null) { return; } renderings.Remove((object)renderingDefinition); renderings.Insert(this.SelectedIndex - 1, (object)renderingDefinition); --this.SelectedIndex; CustomDeviceEditor.SetDefinition(layoutDefinition); this.Refresh(); }
/// <summary>Updates the state of the commands.</summary> private void UpdateRenderingsCommandsState() { if (this.SelectedIndex < 0) { this.ChangeButtonsState(true); } else { ArrayList renderings = CustomDeviceEditor.GetLayoutDefinition().GetDevice(this.DeviceID).Renderings; if (renderings == null) { this.ChangeButtonsState(true); } else { RenderingDefinition definition = renderings[this.SelectedIndex] as RenderingDefinition; if (definition == null) { this.ChangeButtonsState(true); } else { this.ChangeButtonsState(false); this.Personalize.Disabled = !string.IsNullOrEmpty(definition.MultiVariateTest); this.Test.Disabled = CustomDeviceEditor.HasRenderingRules(definition); } } } }
/// <summary> /// Checks to see if the passed in item has presentation settings for the provided device and sublayout. /// </summary> /// <param name = "theItem">The item.</param> /// <param name = "device">The device.</param> /// <param name = "sublayoutItem">The sublayout item.</param> /// <returns>True if the item contains the device and sublayout in it's presentation settings, false otherwise.</returns> public static bool ItemHasPresentationSettingsForSublayout(Item theItem, DeviceItem device, SublayoutItem sublayoutItem) { if (theItem == null || device == null || sublayoutItem == null) { return(false); } //If the item does not contain settings for the passed in device do not bother with the // rest of the check. if (!ItemHasPresentationSettingsForDevice(theItem, device)) { return(false); } //Try and get the device definition from the layout definition DeviceDefinition deviceDef = GetDeviceDefinition(theItem, device); if (deviceDef == null) { return(false); } //Try and get the rendering for the passed in display item RenderingDefinition rendering = deviceDef.GetRendering(sublayoutItem.ID.ToString()); return(!(rendering == null)); }
public virtual void SetDynamicId(RenderingDefinition rendering, string id) { var parameters = WebUtil.ParseUrlParameters(rendering.Parameters); parameters[DynamicPlaceholderIdParam] = id; rendering.Parameters = new UrlString(parameters).GetUrl(); }
public virtual string NextDynamicId(RenderingDefinition rendering, PrefabGetRenderingsArgs args) { return(System.Math.Max( NextDynamicId(rendering, args.DeviceLayout.Renderings.Cast <RenderingDefinition>()), NextDynamicId(rendering, args.Result) ).ToString()); }
protected override RenderingDefinition DoReplaceRendering(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device) { Assert.ArgumentNotNull(sourceRendering, "sourceRendering"); Assert.ArgumentNotNull(targetRenderingItem, "targetRenderingItem"); Assert.ArgumentNotNull(device, "device"); RenderingDefinition definition = new RenderingDefinition { UniqueId = sourceRendering.UniqueId, Cachable = sourceRendering.Cachable, Conditions = sourceRendering.Conditions, Datasource = sourceRendering.Datasource, ItemID = targetRenderingItem.ID.ToString(), MultiVariateTest = sourceRendering.MultiVariateTest, Parameters = sourceRendering.Parameters, Placeholder = sourceRendering.Placeholder, Rules = sourceRendering.Rules, VaryByData = sourceRendering.VaryByData, ClearOnIndexUpdate = sourceRendering.ClearOnIndexUpdate, VaryByDevice = sourceRendering.VaryByDevice, VaryByLogin = sourceRendering.VaryByLogin, VaryByParameters = sourceRendering.VaryByParameters, VaryByQueryString = sourceRendering.VaryByQueryString, VaryByUser = sourceRendering.VaryByUser }; if (device.Renderings != null) { int index = device.Renderings.IndexOf(sourceRendering); device.Renderings.RemoveAt(index); device.Renderings.Insert(index, definition); } return definition; }
protected override RenderingReference DoActivateCondition(RenderingDefinition rendering, ID conditionID, Language lang, Database database, Item item, SiteContext site) { var reference = base.DoActivateCondition(rendering, conditionID, lang, database, item, site); ExtensionMethods.TransferRenderingParameters(rendering, reference); return(reference); }
protected override RenderingDefinition DoReplaceRendering(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device) { Assert.ArgumentNotNull(sourceRendering, "sourceRendering"); Assert.ArgumentNotNull(targetRenderingItem, "targetRenderingItem"); Assert.ArgumentNotNull(device, "device"); RenderingDefinition definition = new RenderingDefinition { UniqueId = sourceRendering.UniqueId, Cachable = sourceRendering.Cachable, Conditions = sourceRendering.Conditions, Datasource = sourceRendering.Datasource, ItemID = targetRenderingItem.ID.ToString(), MultiVariateTest = sourceRendering.MultiVariateTest, Parameters = sourceRendering.Parameters, Placeholder = sourceRendering.Placeholder, Rules = sourceRendering.Rules, VaryByData = sourceRendering.VaryByData, ClearOnIndexUpdate = sourceRendering.ClearOnIndexUpdate, VaryByDevice = sourceRendering.VaryByDevice, VaryByLogin = sourceRendering.VaryByLogin, VaryByParameters = sourceRendering.VaryByParameters, VaryByQueryString = sourceRendering.VaryByQueryString, VaryByUser = sourceRendering.VaryByUser }; if (device.Renderings != null) { int index = device.Renderings.IndexOf(sourceRendering); device.Renderings.RemoveAt(index); device.Renderings.Insert(index, definition); } return(definition); }
public Item FindDatasource(IDataMap map, Item item, RenderingDefinition rendering) { var ds = rendering.DynamicProperties.FirstOrDefault(a => a.LocalName.Equals("ds")); if (string.IsNullOrWhiteSpace(ds?.Value)) { Logger.Log("The rendering has no datasource property", item.Paths.FullPath, Providers.LogType.PresentationService, "rendering", rendering.ToXml()); return(null); } Item dsItem = null; if (ID.IsID(ds.Value)) { dsItem = map.ToDB.GetItem(new ID(ds.Value)); } else if (ds.Value.Contains("local:")) { dsItem = map.ToDB.GetItem($"{item.Paths.FullPath}{ds.Value.Replace("local:", "")}"); } else { dsItem = map.ToDB.GetItem(ds.Value); } if (dsItem == null) { Logger.Log("The datasource item is null", item.Paths.FullPath, Providers.LogType.PresentationService, "ds.Value", ds.Value); } return(dsItem); }
protected void Add(ClientPipelineArgs args) { Assert.ArgumentNotNull((object)args, "args"); if (args.IsPostBack) { if (!args.HasResult) { return; } string[] strArray = args.Result.Split(','); string str1 = strArray[0]; string str2 = strArray[1].Replace("-c-", ","); bool flag = strArray[2] == "1"; LayoutDefinition layoutDefinition = CustomDeviceEditor.GetLayoutDefinition(); DeviceDefinition device = layoutDefinition.GetDevice(this.DeviceID); RenderingDefinition renderingDefinition = new RenderingDefinition() { ItemID = str1, Placeholder = str2 }; device.AddRendering(renderingDefinition); CustomDeviceEditor.SetDefinition(layoutDefinition); this.Refresh(); if (flag) { ArrayList renderings = device.Renderings; if (renderings != null) { this.SelectedIndex = renderings.Count - 1; Context.ClientPage.SendMessage((object)this, "device:edit"); } } Registry.SetString("/Current_User/SelectRendering/Selected", str1); } else { Item itm = UIUtil.GetItemFromQueryString(Sitecore.Client.ContentDatabase); SelectRenderingOptions renderingOptions = new SelectRenderingOptions() { ShowOpenProperties = true, ShowPlaceholderName = true, PlaceholderName = string.Empty }; string @string = Registry.GetString("/Current_User/SelectRendering/Selected"); if (!string.IsNullOrEmpty(@string)) { renderingOptions.SelectedItem = Client.ContentDatabase.GetItem(@string); } //Modify the following line to include id and deviceid parameters SheerResponse.ShowModalDialog(renderingOptions.ToUrlString(Sitecore.Client.ContentDatabase).ToString() + "&ciId=" + System.Web.HttpUtility.UrlEncode(itm.ID.ToString()) + "&deviceid=" + System.Web.HttpUtility.UrlEncode(this.DeviceID), true); //SheerResponse.ShowModalDialog(renderingOptions.ToUrlString(Client.ContentDatabase).ToString(), true); args.WaitForPostBack(); } }
/// <summary> /// Sets the value. /// </summary> /// <param name="renderingDefinition"> /// The rendering definition. /// </param> /// <param name="parameters"> /// The parameters. /// </param> /// <param name="fieldName"> /// Name of the field. /// </param> /// <param name="value"> /// The value. /// </param> private static void SetValue( RenderingDefinition renderingDefinition, UrlString parameters, string fieldName, string value) { Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); Assert.ArgumentNotNull(fieldName, "fieldName"); Assert.ArgumentNotNull(value, "value"); Assert.ArgumentNotNull(parameters, "parameters"); switch (fieldName.ToLowerInvariant()) { case "placeholder": renderingDefinition.Placeholder = value; break; case "data source": renderingDefinition.Datasource = value; break; case "caching": SetCaching(renderingDefinition, value); break; case "personalization": renderingDefinition.Conditions = value; break; case "tests": { if (string.IsNullOrEmpty(value)) { renderingDefinition.MultiVariateTest = string.Empty; } Item item = Client.ContentDatabase.GetItem(value); if (item != null) { renderingDefinition.MultiVariateTest = item.ID.ToString(); } else { renderingDefinition.MultiVariateTest = value; } break; } case "additional parameters": { NameValueCollection parameters2 = new UrlString(value).Parameters; parameters.Parameters.Add(parameters2); break; } default: parameters[fieldName] = value; break; } }
private void RunReplaceRenderingRules(RenderingDefinition sourceRendering, Item targetRenderingItem, DeviceDefinition device) { using (new TraceOperation("Run replace rendering rules")) { var context = new ReplaceRenderingRuleContext(sourceRendering, targetRenderingItem, device); _rulesRunner.RunGlobalRules(RuleIDs.ReplaceRenderingGlobalRulesRootId, targetRenderingItem.Database, context); } }
protected override void ProcessLayout(Item item, LayoutDefinition layout, DeviceDefinition device) { if (!ShouldProcess(item.GetProviderPath(), "Add rendering " + Instance.ItemID)) { return; } var rendering = new RenderingDefinition { ItemID = Instance.ItemID, Placeholder = PlaceHolder ?? Instance.Placeholder, Datasource = DataSource ?? Instance.Datasource, Cachable = Instance.Cachable, ClearOnIndexUpdate = Instance.ClearOnIndexUpdate, VaryByData = Instance.VaryByData, VaryByDevice = Instance.VaryByDevice, VaryByLogin = Instance.VaryByLogin, VaryByParameters = Instance.VaryByParameters, VaryByQueryString = Instance.VaryByQueryString, VaryByUser = Instance.VaryByUser }; if (Parameter != null) { var parameters = new UrlString(rendering.Parameters ?? string.Empty); foreach (string name in Parameter.Keys) { if (parameters.Parameters.AllKeys.Contains(name)) { parameters.Parameters[name] = Parameter[name].ToString(); } else { parameters.Add(name, Parameter[name].ToString()); } } rendering.Parameters = parameters.ToString(); } //todo: add support for conditions //renderingDefinition.Conditions //todo: add support for multivariate tests //rendering.MultiVariateTest if (Index > -1) { device.Insert(Index, rendering); } else { device.AddRendering(rendering); } item.Edit(p => { var outputXml = layout.ToXml(); LayoutField.SetFieldValue(item.Fields[LayoutFieldId], outputXml); }); }
protected void Change(ClientPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); if (this.SelectedIndex < 0) { return; } LayoutDefinition layoutDefinition = DeviceEditorForm.GetLayoutDefinition(); DeviceDefinition device = layoutDefinition.GetDevice(this.DeviceID); System.Collections.ArrayList renderings = device.Renderings; if (renderings == null) { return; } RenderingDefinition renderingDefinition = renderings[this.SelectedIndex] as RenderingDefinition; if (renderingDefinition == null) { return; } if (string.IsNullOrEmpty(renderingDefinition.ItemID)) { return; } if (args.IsPostBack) { if (args.HasResult) { string[] array = args.Result.Split(new char[] { ',' }); renderingDefinition.ItemID = array[0]; bool flag = array[2] == "1"; DeviceEditorForm.SetDefinition(layoutDefinition); this.Refresh(); if (flag) { Context.ClientPage.SendMessage(this, "device:edit"); return; } } } else { SelectRenderingOptions selectRenderingOptions = new SelectRenderingOptions { ShowOpenProperties = true, ShowPlaceholderName = false, PlaceholderName = string.Empty, SelectedItem = Client.ContentDatabase.GetItem(renderingDefinition.ItemID) }; string url = selectRenderingOptions.ToUrlString(Client.ContentDatabase).ToString(); SheerResponse.ShowModalDialog(url, true); args.WaitForPostBack(); } }
protected virtual void InsertRenderingAt(DeviceDefinition device, RenderingDefinition renderingDefinition, int insertPosition, IEnumerable <ID> allowedRenderingsIds, string renderingUniqueId = "") { Assert.ArgumentNotNull((object)device, "device"); Assert.ArgumentNotNull((object)renderingDefinition, "renderingDefinition"); // Insert Rendering by it's Unique Id if (!string.IsNullOrEmpty(renderingUniqueId) && device != null && device.Renderings != null) { string uniqueId = string.Concat("{", renderingUniqueId, "}"); // Try for (int index = 0; index < device.Renderings.Count; ++index) { RenderingDefinition rendering = device.Renderings[index] as RenderingDefinition; if (rendering.UniqueId.Equals(uniqueId, StringComparison.InvariantCultureIgnoreCase)) { device.Insert(index + 1, renderingDefinition); } } } if (insertPosition == 0) { device.Insert(insertPosition, renderingDefinition); } else if (device.Renderings == null) { device.AddRendering(renderingDefinition); } else { ID[] idArray = Enumerable.ToArray <ID>(allowedRenderingsIds); int num = 0; for (int index = 0; index < device.Renderings.Count; ++index) { RenderingDefinition rendering = device.Renderings[index] as RenderingDefinition; Assert.IsNotNull((object)rendering, "rendering"); string placeholder = rendering.Placeholder; if (string.IsNullOrEmpty(placeholder) && Enumerable.Any <ID>((IEnumerable <ID>)idArray, (Func <ID, bool>)(p => p == ID.Parse(rendering.ItemID)))) { placeholder = renderingDefinition.Placeholder; } if (InsertRendering.AreEqualPlaceholders(placeholder, renderingDefinition.Placeholder)) { ++num; } if (num == insertPosition) { device.Insert(index + 1, renderingDefinition); break; } } } }
protected bool MatchesParamCriteria(RenderingDefinition r) { var urlString = new UrlString(r.Parameters); if (string.IsNullOrWhiteSpace(urlString[Param])) { return(false); } return(Compare(HttpUtility.UrlDecode(urlString[Param]), HttpUtility.UrlDecode(Value))); }
protected void Add(ClientPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); if (args.IsPostBack) { if (args.HasResult) { string[] array = args.Result.Split(new char[] { ',' }); string text = array[0]; string placeholder = array[1].Replace("-c-", ","); bool flag = array[2] == "1"; LayoutDefinition layoutDefinition = DeviceEditorForm.GetLayoutDefinition(); DeviceDefinition device = layoutDefinition.GetDevice(this.DeviceID); RenderingDefinition renderingDefinition = new RenderingDefinition { ItemID = text, Placeholder = placeholder }; device.AddRendering(renderingDefinition); DeviceEditorForm.SetDefinition(layoutDefinition); this.Refresh(); if (flag) { System.Collections.ArrayList renderings = device.Renderings; if (renderings != null) { this.SelectedIndex = renderings.Count - 1; Context.ClientPage.SendMessage(this, "device:edit"); } } Registry.SetString("/Current_User/SelectRendering/Selected", text); return; } } else { SelectRenderingOptions selectRenderingOptions = new SelectRenderingOptions { ShowOpenProperties = true, ShowPlaceholderName = true, PlaceholderName = string.Empty }; string @string = Registry.GetString("/Current_User/SelectRendering/Selected"); if (!string.IsNullOrEmpty(@string)) { selectRenderingOptions.SelectedItem = Client.ContentDatabase.GetItem(@string); } string url = selectRenderingOptions.ToUrlString(Client.ContentDatabase).ToString(); SheerResponse.ShowModalDialog(url, true); args.WaitForPostBack(); } }
protected override void ProcessLayout(Item item, LayoutDefinition layout, DeviceDefinition device) { if (!ShouldProcess(item.GetProviderPath(), "Add rendering " + Instance.ItemID)) { return; } var rendering = new RenderingDefinition { ItemID = Instance.ItemID, Placeholder = PlaceHolder ?? Instance.Placeholder, Datasource = DataSource ?? Instance.Datasource, Cachable = Instance.Cachable, VaryByData = Instance.VaryByData, VaryByDevice = Instance.VaryByDevice, VaryByLogin = Instance.VaryByLogin, VaryByParameters = Instance.VaryByParameters, VaryByQueryString = Instance.VaryByQueryString, VaryByUser = Instance.VaryByUser }; if (Parameter != null) { var parameters = new UrlString(rendering.Parameters ?? string.Empty); foreach (string name in Parameter.Keys) if (parameters.Parameters.AllKeys.Contains(name)) { parameters.Parameters[name] = Parameter[name].ToString(); } else { parameters.Add(name, Parameter[name].ToString()); } rendering.Parameters = parameters.ToString(); } //todo: add support for conditions //renderingDefinition.Conditions //todo: add support for multivariate tests //rendering.MultiVariateTest if (Index > -1) { device.Insert(index, rendering); } else { device.AddRendering(rendering); } item.Edit(p => { var outputXml = layout.ToXml(); Item["__Renderings"] = outputXml; }); }
protected virtual string GetCaching(RenderingDefinition renderingDefinition) { Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); return (renderingDefinition.Cachable == "1" ? "1" : "0") + "|" + (renderingDefinition.ClearOnIndexUpdate == "1" ? "1" : "0") + "|" + (renderingDefinition.VaryByData == "1" ? "1" : "0") + "|" + (renderingDefinition.VaryByDevice == "1" ? "1" : "0") + "|" + (renderingDefinition.VaryByLogin == "1" ? "1" : "0") + "|" + (renderingDefinition.VaryByParameters == "1" ? "1" : "0") + "|" + (renderingDefinition.VaryByQueryString == "1" ? "1" : "0") + "|" + (renderingDefinition.VaryByUser == "1" ? "1" : "0"); }
protected virtual void InsertRenderingAt(DeviceDefinition device, RenderingDefinition renderingDefinition, int insertPosition, IEnumerable<ID> allowedRenderingsIds, string renderingUniqueId = "") { Assert.ArgumentNotNull((object)device, "device"); Assert.ArgumentNotNull((object)renderingDefinition, "renderingDefinition"); // Insert Rendering by it's Unique Id if (!string.IsNullOrEmpty(renderingUniqueId) && device != null && device.Renderings != null) { string uniqueId = string.Concat("{", renderingUniqueId, "}"); // Try for (int index = 0; index < device.Renderings.Count; ++index) { RenderingDefinition rendering = device.Renderings[index] as RenderingDefinition; if (rendering.UniqueId == uniqueId) { device.Insert(index + 1, renderingDefinition); } } } if (insertPosition == 0) device.Insert(insertPosition, renderingDefinition); else if (device.Renderings == null) { device.AddRendering(renderingDefinition); } else { ID[] idArray = Enumerable.ToArray<ID>(allowedRenderingsIds); int num = 0; for (int index = 0; index < device.Renderings.Count; ++index) { RenderingDefinition rendering = device.Renderings[index] as RenderingDefinition; Assert.IsNotNull((object)rendering, "rendering"); string placeholder = rendering.Placeholder; if (string.IsNullOrEmpty(placeholder) && Enumerable.Any<ID>((IEnumerable<ID>)idArray, (Func<ID, bool>)(p => p == ID.Parse(rendering.ItemID)))) placeholder = renderingDefinition.Placeholder; if (InsertRendering.AreEqualPlaceholders(placeholder, renderingDefinition.Placeholder)) ++num; if (num == insertPosition) { device.Insert(index + 1, renderingDefinition); break; } } } }
protected virtual void SetValue(RenderingDefinition renderingDef, UrlString parameters, string fieldName, string value) { Assert.ArgumentNotNull(renderingDef, "renderingDef"); Assert.ArgumentNotNull(fieldName, "fieldName"); Assert.ArgumentNotNull(value, "value"); Assert.ArgumentNotNull(parameters, "parameters"); var name = fieldName.ToLowerInvariant(); switch (name) { case "placeholder": renderingDef.Placeholder = value; return; case "data source": renderingDef.Datasource = value; return; case "caching": SetCaching(renderingDef, value); return; case "personalization": renderingDef.Conditions = value; return; case "tests": if (string.IsNullOrEmpty(value)) { renderingDef.MultiVariateTest = string.Empty; } var item = Sitecore.Client.ContentDatabase.GetItem(value); if (item != null) { renderingDef.MultiVariateTest = item.ID.ToString(); return; } renderingDef.MultiVariateTest = value; return; } if (name == "additional parameters") { var additionalParameters = new UrlString(value); parameters.Append(additionalParameters); return; } parameters[fieldName] = value; }
protected virtual void SetCaching(RenderingDefinition renderingDef, string value) { Assert.ArgumentNotNull(renderingDef, "renderingDef"); Assert.ArgumentNotNull(value, "value"); if (string.IsNullOrEmpty(value)) { value = "0|0|0|0|0|0|0|0"; } var parts = value.Split('|'); Assert.IsTrue(parts.Length == 8, "Invalid caching value format"); renderingDef.Cachable = parts[0] == "1" ? "1" : null; renderingDef.ClearOnIndexUpdate = parts[1] == "1" ? "1" : null; renderingDef.VaryByData = parts[2] == "1" ? "1" : null; renderingDef.VaryByDevice = parts[3] == "1" ? "1" : null; renderingDef.VaryByLogin = parts[4] == "1" ? "1" : null; renderingDef.VaryByParameters = parts[5] == "1" ? "1" : null; renderingDef.VaryByQueryString = parts[6] == "1" ? "1" : null; renderingDef.VaryByUser = parts[7] == "1" ? "1" : null; }
private static bool HasRenderingRules(RenderingDefinition definition) { if (definition.Rules == null) { return false; } IEnumerable<XElement> rules = new RulesDefinition(definition.Rules.ToString()).GetRules(); if (rules == null) { return false; } foreach (XContainer xcontainer in rules) { XElement xelement = Enumerable.FirstOrDefault(xcontainer.Descendants("actions")); if (xelement != null && Enumerable.Any(xelement.Descendants())) { return true; } } return false; }
private void SetLayoutFieldValue(RenderingDefinition renderingDefinition, LayoutDefinition layoutDefinition, Item item) { Assert.ArgumentNotNull(item, "item"); using (new Sitecore.Data.Items.EditContext(item)) { renderingDefinition.Datasource = _datasourceId.ToString(); item[Sitecore.FieldIDs.LayoutField] = layoutDefinition.ToXml(); } }
private void BuildRendering(Border border, DeviceDefinition deviceDefinition, RenderingDefinition renderingDefinition, int index, int conditionsCount) { Assert.ArgumentNotNull(border, "border"); Assert.ArgumentNotNull(deviceDefinition, "deviceDefinition"); Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); string itemId = renderingDefinition.ItemID; if (itemId == null) { return; } Item obj = Client.ContentDatabase.GetItem(itemId); if (obj == null) { return; } string displayName = obj.DisplayName; string icon = obj.Appearance.Icon; string str1 = string.Empty; string str2 = displayName; if (str1.Length > 0 && str1 != "content") { str2 = string.Format("{0} {1} {2}.", str2, Translate.Text("in"), str1); } if (Settings.Analytics.Enabled && conditionsCount > 1) { str2 += string.Format("<span class=\"{0}\">{1}</span>", conditionsCount > 9 ? "scConditionContainer scLongConditionContainer" : "scConditionContainer", conditionsCount); } Border border1 = new Border(); border1.Style.Add("float", "left"); Border borderX = new Border(); var renderingIconAnchor = new HtmlGenericControl { InnerHtml = "<a onclick='window.open(\"/sitecore/shell/Applications/Content%20Editor.aspx?fo=" + itemId + "\",\"myWin\",\"width=800,height=600\"); return false;' taget='_blank' class='linkIcon'>" + Images.GetImage(icon, 16, 16, "absmiddle", "0px 4px 0px 0px") + "</a>", }; renderingIconAnchor.Style.Add("float", "left"); borderX.Controls.Add(renderingIconAnchor); borderX.Controls.Add(border1); var clearBoth = new HtmlGenericControl("div"); clearBoth.Style.Add("clear","both"); borderX.Controls.Add(clearBoth); border.Controls.Add(borderX); string str3 = StringUtil.GetString(EditRenderingClick).Replace("$Device", deviceDefinition.ID).Replace("$Index", index.ToString()); if (!string.IsNullOrEmpty(str3)) { border1.RollOver = true; border1.Class = "scRollOver"; border1.Click = str3; } var literal = new Sitecore.Web.UI.HtmlControls.Literal( string.Format("<div class='scRendering' style='padding:2px;position:relative'>{0}</div>", str2) ); border1.Controls.Add(literal); }
protected override void ProcessItem(Item item) { var rendering = new RenderingDefinition { ItemID = item.ID.ToString(), Placeholder = PlaceHolder, Datasource = DataSource != null ? DataSource.ID.ToString() : null, Cachable = Cacheable ? "1" : null, VaryByData = VaryByData ? "1" : null, VaryByDevice = VaryByDevice ? "1" : null, VaryByLogin = VaryByLogin ? "1" : null, VaryByParameters = VaryByParameters ? "1" : null, VaryByQueryString = VaryByQueryString ? "1" : null, VaryByUser = VaryByUser ? "1" : null }; if (Parameter != null) { var parameters = new UrlString(); foreach (string name in Parameter.Keys) parameters.Add(name, Parameter[name].ToString()); rendering.Parameters = parameters.ToString(); } //todo: add support for conditions //renderingDefinition.Conditions //todo: add support for multivariate tests //rendering.MultiVariateTest var psobj = ItemShellExtensions.WrapInItemOwner(SessionState, item, rendering); WriteObject(psobj); }
private static RenderingDefinition GetHtmlRendering() { RenderingDefinition definition = new RenderingDefinition(); definition.ItemID = HtmlHeaderRenderingID; definition.UniqueId = ID.NewID.ToString(); definition.Placeholder = "html-head-meta-data"; return definition; }
protected void Add(ClientPipelineArgs args) { Assert.ArgumentNotNull(args, "args"); if (!args.IsPostBack) { SelectRenderingOptions selectRenderingOption = new SelectRenderingOptions() { ShowOpenProperties = true, ShowPlaceholderName = true, PlaceholderName = string.Empty }; SelectRenderingOptions item = selectRenderingOption; string str = Registry.GetString("/Current_User/SelectRendering/Selected"); if (!string.IsNullOrEmpty(str)) { item.SelectedItem = Client.ContentDatabase.GetItem(str); } string str1 = item.ToUrlString(Client.ContentDatabase).ToString(); SheerResponse.ShowModalDialog(str1, true); args.WaitForPostBack(); } else if (args.HasResult) { string[] strArrays = args.Result.Split(new char[] { ',' }); string str2 = strArrays[0]; string str3 = strArrays[1].Replace("-c-", ","); bool flag = strArrays[2] == "1"; LayoutDefinition layoutDefinition = AdvancedDeviceEditorForm.GetLayoutDefinition(); DeviceDefinition device = layoutDefinition.GetDevice(this.DeviceID); RenderingDefinition renderingDefinition = new RenderingDefinition() { ItemID = str2, Placeholder = str3 }; device.AddRendering(renderingDefinition); AdvancedDeviceEditorForm.SetDefinition(layoutDefinition); this.Refresh(); if (flag) { ArrayList renderings = device.Renderings; if (renderings != null) { this.SelectedIndex = renderings.Count - 1; Context.ClientPage.SendMessage(this, "device:edit"); } } Registry.SetString("/Current_User/SelectRendering/Selected", str2); return; } }
/// <summary> /// The render component. /// </summary> /// <param name="output"> /// The output. /// </param> /// <param name="rendering"> /// The rendering. /// </param> protected virtual void RenderComponent(System.Web.UI.HtmlTextWriter output, RenderingDefinition rendering, int goalNum, CommandContext context) { Assert.ArgumentNotNull(output, "output"); Assert.ArgumentNotNull(rendering, "rendering"); if (string.IsNullOrEmpty(rendering.ItemID)) { return; } RenderingItem renderingItem = Client.ContentDatabase.GetItem(rendering.ItemID); if (renderingItem == null) { return; } SmallButtonAnalytics sublayoutButton = new SmallButtonAnalytics(); string text = "r_" + ShortID.Encode(rendering.UniqueId); sublayoutButton.ID = text; sublayoutButton.Header = StringUtil.Clip(renderingItem.DisplayName, ComponentAnalyze.MaxDisplayNameLength, true); sublayoutButton.Icon = renderingItem.Icon; sublayoutButton.Command = StringUtil.EscapeQuote("javascript:Sitecore.PageEditorProxy.selectElement(\"{0}\", this, event);".FormatWith(new object[] { text }), "#quote#"); sublayoutButton.Enabled = renderingItem.Editable; sublayoutButton.ToolTip = (string.IsNullOrEmpty(renderingItem.InnerItem.Appearance.ShortDescription) ? renderingItem.DisplayName : renderingItem.InnerItem.Appearance.ShortDescription); sublayoutButton.RenderControl(output); var datasourceItem = Factory.GetDatabase("master").GetItem(rendering.Datasource); if (datasourceItem != null) { SmallButtonAnalytics datasourceButton = new SmallButtonAnalytics(); text = "d_" + ShortID.Encode(datasourceItem.ID); datasourceButton.ID = text; datasourceButton.Header = StringUtil.Clip(datasourceItem.DisplayName, ComponentAnalyze.MaxDisplayNameLength, true); datasourceButton.Command = ""; datasourceButton.Icon = datasourceItem.Appearance.Icon; datasourceButton.ToolTip = (string.IsNullOrEmpty(datasourceItem.Appearance.ShortDescription) ? datasourceItem.DisplayName : datasourceItem.Appearance.ShortDescription); datasourceButton.RenderControl(output); SmallButtonAnalytics goalButton = new SmallButtonAnalytics(); text = "g_" + goalNum; goalButton.ID = text; goalButton.Header = ""; CommandBuilder commandBuilder = new CommandBuilder(string.Format("webedit:setdatasource")); commandBuilder.Arguments.Add("referenceId", rendering.UniqueId); commandBuilder.Arguments.Add("renderingId", renderingItem.ID.ToString()); //context.Parameters.Add("uniqueId", datasourceItem.GetUniqueId()); commandBuilder.Add("id", datasourceItem.ID.ToString()); goalButton.Command = commandBuilder.ToString(); goalButton.Icon = "BusinessV2/16x16/cabinet_open.png"; goalButton.ToolTip = "Set associated content."; goalButton.RenderControl(output); //People/24x24/megaphone.png //analytics:opentrackingfield //Business/24x24/chart.png //analytics:authoringfeedback SmallButtonAnalytics eventButton = new SmallButtonAnalytics(); text = "e_" + goalNum; eventButton.ID = text; eventButton.Header = ""; commandBuilder = new CommandBuilder("analytics:opentrackingfield"); commandBuilder.Add("id", datasourceItem.ID.ToString()); eventButton.Command = commandBuilder.ToString(); eventButton.Icon = "People/24x24/megaphone.png"; eventButton.ToolTip = "Click to edit the page event"; eventButton.RenderControl(output); SmallButtonAnalytics reportButton = new SmallButtonAnalytics(); text = "rep_" + goalNum; reportButton.ID = text; reportButton.Header = ""; commandBuilder = new CommandBuilder("analytics:authoringfeedback"); commandBuilder.Add("id", datasourceItem.ID.ToString()); reportButton.Command = commandBuilder.ToString(); reportButton.Icon = "Business/24x24/chart.png"; reportButton.ToolTip = "Click to edit the page event"; reportButton.RenderControl(output); } }
private void SetLayoutFieldValueIfApplicable(RenderingDefinition renderingDefinition, LayoutDefinition layoutDefinition, Item item) { if (renderingDefinition.ItemID == _renderingId.ToString()) { SetLayoutFieldValueIfEditMode(renderingDefinition, layoutDefinition, item); } }
private void SetLayoutFieldValueIfEditMode(RenderingDefinition renderingDefinition, LayoutDefinition layoutDefinition, Item item) { if (IsEditMode) { SetLayoutFieldValue(renderingDefinition, layoutDefinition, item); } }
/// <summary> /// Get Description Value /// </summary> /// <param name="renderingDefinition"> /// The RenderingDefinition. /// </param> private static string GetDescriptionValue(RenderingDefinition renderingDefinition) { Assert.ArgumentNotNull(renderingDefinition, "RenderingDefinition"); string descriptionValue = string.Empty; if (renderingDefinition.Parameters != null) { NameValueCollection renderingParameters = Sitecore.Web.WebUtil.ParseUrlParameters(renderingDefinition.Parameters); descriptionValue = renderingParameters["Description"]; } return descriptionValue; }
private static RenderingDefinition CreateRenderingNode(RenderingSettings setting) { RenderingDefinition definition = new RenderingDefinition(); definition.ItemID = setting.ID; definition.UniqueId = ID.NewID.ToString(); definition.Placeholder = setting.PlaceholderName; StringBuilder parametrs = new StringBuilder(); string settingsName; if (mappingNameParamerts.TryGetValue(setting.ID, out settingsName) && setting.ViewItemPath != null && setting.ViewItemPath != string.Empty) { parametrs.Append(settingsName).Append("="); parametrs.Append(setting.ViewItemPath); parametrs.Append("&"); } parametrs.Append(siteSettingsPathName).Append("="); parametrs.Append(setting.SiteSettingsPath); parametrs.ToString(); definition.Parameters = parametrs.ToString(); return definition; }
/// <summary> /// Determines whether [has rendering rules] [the specified definition]. /// </summary> /// <param name="definition">The definition.</param> /// <returns><c>true</c> if the definition has a defined rule with action; otherwise, <c>false</c>.</returns> private static bool HasRenderingRules(RenderingDefinition definition) { bool flag; if (definition.Rules == null) { return false; } RulesDefinition rulesDefinition = new RulesDefinition(definition.Rules.ToString()); IEnumerable<XElement> rules = rulesDefinition.GetRules(); if (rules == null) { return false; } using (IEnumerator<XElement> enumerator = rules.GetEnumerator()) { while (enumerator.MoveNext()) { XElement current = enumerator.Current; XElement xElement = current.Descendants("actions").FirstOrDefault<XElement>(); if (xElement == null || !xElement.Descendants().Any<XElement>()) { continue; } flag = true; return flag; } return false; } return flag; }
private void SetLayoutFieldValueIfEditMode(RenderingDefinition renderingDefinition, LayoutDefinition layoutDefinition, Item item) { if (_processingResults.ContainsKey(item.ID)) { _processingResults[item.ID].Updated = true; } if (IsEditMode) { SetLayoutFieldValue(renderingDefinition, layoutDefinition, item); } }
protected virtual void SetCustomParameters(RenderingDefinition renderingDefinition, RenderingParametersFieldEditorOptions options, Item item) { Assert.ArgumentNotNull(renderingDefinition, "renderingDefinition"); Assert.ArgumentNotNull(options, "options"); var renderingItem = renderingDefinition.ItemID != null ? Sitecore.Client.ContentDatabase.GetItem(renderingDefinition.ItemID) : null; if (renderingItem != null) { options.Parameters["rendering"] = renderingItem.Uri.ToString(); } if (item != null) { options.Parameters["contentitem"] = item.Uri.ToString(); } if (Sitecore.Web.WebEditUtil.IsRenderingPersonalized(renderingDefinition)) { options.Parameters["warningtext"] = Sitecore.Texts.PersonalizationConditionsDefinedWarning; } if (!string.IsNullOrEmpty(renderingDefinition.MultiVariateTest)) { options.Parameters["warningtext"] = Sitecore.Texts.Thereisamultivariatetestsetupforthiscontro; } }