/// <summary> /// Retrieve field editor options controlling the field editor, /// including the fields displayed. /// </summary> /// <param name="args">Pipeline arguments.</param> /// <param name="form">Form parameters.</param> /// <returns>Field editor options.</returns> protected override Sitecore.Shell.Applications.WebEdit.PageEditFieldEditorOptions GetOptions(Sitecore.Web.UI.Sheer.ClientPipelineArgs args, NameValueCollection form) { Sitecore.Diagnostics.Assert.IsNotNull(args, "args"); Sitecore.Diagnostics.Assert.IsNotNull(form, "form"); Sitecore.Diagnostics.Assert.IsNotNullOrEmpty(args.Parameters[URI], URI); Sitecore.Data.ItemUri uri = Sitecore.Data.ItemUri.Parse(args.Parameters[URI]); Sitecore.Diagnostics.Assert.IsNotNull(uri, URI); Sitecore.Data.Items.Item item = Sitecore.Data.Database.GetItem(uri); while (!item.TemplateIsOrBasedOn(Settings.BlogTemplateID)) { item = item.Parent; } Sitecore.Diagnostics.Assert.IsNotNull(item, "item"); // Fields to display in the field editor. List <Sitecore.Data.FieldDescriptor> fields = new List <Sitecore.Data.FieldDescriptor>(); try { foreach (string fieldName in GetFieldNames()) { fields.Add(new Sitecore.Data.FieldDescriptor(item, item.Fields[fieldName].Name)); } } catch (Exception ex) { Logger.Error(string.Format("Could not initialize blogsettings fieldeditor. Error {0}, Stacktrace; {1}", ex.Message, ex.StackTrace), this); } // Field editor options. Sitecore.Shell.Applications.WebEdit.PageEditFieldEditorOptions options = new Sitecore.Shell.Applications.WebEdit.PageEditFieldEditorOptions(form, fields); options.PreserveSections = false; options.DialogTitle = "Blog settings"; options.Icon = item.Appearance.Icon; return(options); }