public void Process(SaveRichTextContentArgs args) { _stringBuilder = new StringBuilder(); Assert.ArgumentNotNull(args, "args"); string body; var trimmed = args.Content.Trim(); // don't wrap P if RTE already has a block level element which should not be placed inside P - http://reference.sitepoint.com/html/block-level if ((args.Content != string.Empty) && !args.Content.Contains("</p>") && !trimmed.StartsWith("<ul>") && !trimmed.StartsWith("<ol>") && !trimmed.StartsWith("<table>") && !trimmed.StartsWith("<pre>") && !trimmed.StartsWith("<p>") && !trimmed.StartsWith("<h1>") && !trimmed.StartsWith("<h2>") && !trimmed.StartsWith("<h3>") && !trimmed.StartsWith("<h4>") && !trimmed.StartsWith("<h5>") && !trimmed.StartsWith("<h6>") && !trimmed.StartsWith("<dl>") && !trimmed.StartsWith("<div>") && !trimmed.StartsWith("<blockquote>") && !trimmed.StartsWith("<address>")) { body = "<p>" + args.Content + "</p>"; } else { return; } try { var schemaUri = FileUtil.MapPath("/sitecore/shell/schemas/xhtml.xsd"); var set = new XmlSchemaSet(); set.Add(null, schemaUri); var settings = new XmlReaderSettings(); settings.ValidationEventHandler += ValidationEventHandler; settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings; settings.ValidationType = ValidationType.Schema; settings.Schemas = set; settings.DtdProcessing = DtdProcessing.Parse; settings.XmlResolver = new CachedXmlUrlResolver(); if (_stringBuilder.ToString() == string.Empty) { args.Content = body; } } catch { // ignored } }
/// <summary>Handles the Accept_ click event.</summary> protected void OnAccept() { SaveRichTextContentArgs richTextContentArgs = new SaveRichTextContentArgs(this.Request.Form["FieldText"]); richTextContentArgs.Content = WebEditUtil.RepairLinks(richTextContentArgs.Content); using (new LongRunningOperationWatcher(250, "saveRichTextContent", new string[0])) CorePipeline.Run("saveRichTextContent", (PipelineArgs)richTextContentArgs); if (!RichTextEditorUrl.Parse(this.Context.Request.RawUrl).ShowInFrameBasedDialog) { SheerResponse.Eval(string.Format("scRichText.saveRichText({0})", (object)StringUtil.EscapeJavascriptString(richTextContentArgs.Content))); } else { SheerResponse.SetDialogValue(richTextContentArgs.Content); } SheerResponse.Eval("EditorPage.scCloseEditor();"); }
public void Process(SaveRichTextContentArgs args) { Assert.ArgumentNotNull(args, "args"); args.Content = _provider.RemoveContainerTags(args.Content); }