protected virtual FieldDescriptor GetFieldDescriptor(Field field, GetRenderingPropertiesArgs args) { if (field.Name == "Additional Parameters") { return null; } if (field.Name == "Personalization" && !UserOptions.View.ShowPersonalizationSection) { return null; } if (field.Name == "Tests" && !UserOptions.View.ShowTestLabSection) { return null; } if (!RenderingItem.IsAvalableNotBlobNotSystemField(field)) { return null; } var value = GetValue(field.Name, args); var fieldDescriptor = new FieldDescriptor(args.StandardValuesItem, field.Name) { Value = value ?? field.Value, ContainsStandardValue = (value == null) ? true : false, }; return fieldDescriptor; }
public virtual void Process(GetRenderingPropertiesArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.RenderingDefinition, "args.RenderingDefinition"); Assert.ArgumentNotNull(args.StandardValuesItem, "args.StandardValuesItem"); args.RenderingParameters = GetRenderingParameters(args); args.FieldDescriptors = GetFieldDescriptors(args); }
protected virtual void AddFieldsIncludedBySection(FieldCollection fieldCol, List<Field> includedFields, GetRenderingPropertiesArgs args) { var sectionsParam = args.ClientParameters["sections"]; if (string.IsNullOrEmpty(sectionsParam)) { return; } var sectionNames = sectionsParam.Split(new[] { '|' }).Where(name => !string.IsNullOrWhiteSpace(name)).ToList(); var fields = fieldCol.Where(f => sectionNames.Contains(f.Section)); includedFields.AddRange(fields); }
protected virtual bool ShowDialog(ClientPipelineArgs args, int selectedIndex, Item item) { var handleNameParam = args.Parameters["handleName"]; var deviceIdParam = args.Parameters["deviceId"]; if (args.IsPostBack) { if (args.HasResult) { Save(handleNameParam, deviceIdParam, args.Parameters, selectedIndex, args.Result); } return true; } if (selectedIndex < 0) { return true; } var args2 = new GetRenderingPropertiesArgs() { ClientParameters = args.Parameters, HandleName = handleNameParam, DeviceId = deviceIdParam, SelectedIndex = selectedIndex, }; CorePipeline.Run("getRenderingPropertiesFieldEditor", args2); var fields = args2.FieldDescriptors; var dialogTitle = GetDialogTitle(args); var options = new RenderingParametersFieldEditorOptions(fields) { DialogTitle = dialogTitle, HandleName = handleNameParam, PreserveSections = true }; this.SetCustomParameters(args2.RenderingDefinition, options, item); var url = options.ToUrlString(); SheerResponse.ShowModalDialog(url.ToString(), "720", "480", string.Empty, true); args.WaitForPostBack(); return false; }
protected virtual string GetValue(string fieldName, GetRenderingPropertiesArgs args) { Assert.ArgumentNotNull(fieldName, "fieldName"); Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.RenderingDefinition, "args.RenderingDefinition"); Assert.ArgumentNotNull(args.RenderingParameters, "args.RenderingParameters"); var renderingDef = args.RenderingDefinition; switch (fieldName.ToLowerInvariant()) { case "placeholder": return renderingDef.Placeholder ?? string.Empty; case "data source": return renderingDef.Datasource ?? string.Empty; case "caching": return GetCaching(renderingDef); case "personalization": return renderingDef.Conditions ?? string.Empty; case "tests": return renderingDef.MultiVariateTest ?? string.Empty; } string value; args.RenderingParameters.TryGetValue(fieldName, out value); return value; }
protected virtual Dictionary<string, string> GetRenderingParameters(GetRenderingPropertiesArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.RenderingDefinition, "args.RenderingDefinition"); var parameters = new Dictionary<string, string>(); var parameterCol = Sitecore.Web.WebUtil.ParseUrlParameters(args.RenderingDefinition.Parameters ?? string.Empty); foreach (string key in parameterCol.Keys) { if (!string.IsNullOrEmpty(key)) { parameters[key] = parameterCol[key]; } } return parameters; }
protected virtual List<Field> GetIncludedFields(FieldCollection fieldCol, GetRenderingPropertiesArgs args) { var includedFields = new List<Field>(); var parameters = args.ClientParameters; if (parameters == null || parameters.Count == 0) { return includedFields; } AddFieldsIncludedByName(fieldCol, includedFields, args); AddFieldsIncludedBySection(fieldCol, includedFields, args); return includedFields; }
protected virtual List<FieldDescriptor> GetFieldDescriptors(GetRenderingPropertiesArgs args) { var fieldDescriptors = new List<FieldDescriptor>(); var additionalParameters = new Dictionary<string, string>(args.RenderingParameters); var fieldCol = args.StandardValuesItem.Fields; fieldCol.ReadAll(); fieldCol.Sort(); var includedFields = GetIncludedFields(fieldCol, args); if (includedFields == null || includedFields.Count == 0) { return fieldDescriptors; } foreach (Field field in fieldCol) { if (includedFields.Contains(field)) { var fieldDescriptor = GetFieldDescriptor(field, args); if (fieldDescriptor != null) { fieldDescriptors.Add(fieldDescriptor); } } additionalParameters.Remove(field.Name); } var additionalParametersField = includedFields.FirstOrDefault(f => f.Name.Equals("Additional Parameters", StringComparison.OrdinalIgnoreCase)); if (additionalParametersField != null) { var additionalParametersDescriptor = GetAdditionalParameters(args.StandardValuesItem, additionalParameters); if (additionalParametersDescriptor != null) { fieldDescriptors.Add(additionalParametersDescriptor); } } return fieldDescriptors; }