Quantcast
Channel: Mart's Sitecore Art
Viewing all articles
Browse latest Browse all 81

Enable HTML tags in Single-line or Multi-line text fields - an oldie but a goodie

$
0
0
This comes up time and time again. When upgrading older 6.x Sitecore solutions to 7 and now 8, some content areas seem to be broken because html tags start being rendered on pages.

Why?

The GetTextFieldValue processor that was added to the renderField pipeline in 7 and above ensures that all text fields are output escaped when rendered through the renderField pipeline.

Yes, this is actually a really good security mechanism. However, if you have tech savvy Content Authors, you may want to turn this off.

This processor will help you do just that.

Code

The key is the HttpUtility.HtmlDecode on line 20 below:

1:  using System.Web;  
2: using Sitecore.Diagnostics;
3: using Sitecore.Pipelines.RenderField;
4: namespace MyProject.Framework.Pipelines.RenderField
5: {
6: /// <summary>
7: /// The get text field value.
8: ///
9: /// </summary>
10: public class CustomGetTextFieldValue
11: {
12: public void Process(RenderFieldArgs args)
13: {
14: Assert.ArgumentNotNull((object)args, "args");
15: string fieldTypeKey = args.FieldTypeKey;
16: if (fieldTypeKey != "text"&& fieldTypeKey != "single-line text")
17: {
18: return;
19: }
20: args.Result.FirstPart = HttpUtility.HtmlDecode(args.Result.FirstPart);
21: }
22: }
23: }

Config file for your include folder

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">  
<sitecore>
<pipelines>
<renderField>
<processor type="MyProject.Framework.Pipelines.RenderField.CustomGetTextFieldValue, MyProject.Framework"
patch:instead="processor[@type='Sitecore.Pipelines.RenderField.GetTextFieldValue, Sitecore.Kernel']" />
</renderField>
</pipelines>
</sitecore>
</configuration>



Viewing all articles
Browse latest Browse all 81

Trending Articles