Custom tokens in rich text fields:
using Globus.Foundation.SitecoreExtensions.Extensions;
using Sitecore;
using Sitecore.Diagnostics;
using Sitecore.Pipelines.RenderField;
using System;
using System.Collections.Generic;
namespace Globus.Foundation.Extensions.Pipelines.Tokens
{
public class TrademarkToken
{
public virtual void Process(RenderFieldArgs args)
{
try
{
Dictionary<string, string> trademarkPairs = new Dictionary<string, string>();
// Get Site settings Item
var siteSettingsItem = SiteExtensions.GetSiteSettingsItem(Context.Site.GetStartItem());
// Read trademark values
string[] tradeMarkValues = siteSettingsItem[Templates.SiteSettings.Fields.TrademarkSymbol].Split('|');
foreach(string trademarkString in tradeMarkValues)
{
string[] pair = trademarkString.Split('-');
// Replace whatever tokens exist in the rich text with value from site settings
args.Result.FirstPart = args.Result.FirstPart.Replace(pair[0], pair[1]);
}
}
catch(Exception ex)
{
Log.Error("Error in TrademarkToken.Process method: " + ex.Message, this);
}
}
}
}
==============
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<renderField>
<processor patch:after="*[@type='Sitecore.Pipelines.RenderField.GetFieldValue, Sitecore.Kernel']"
type="Globus.Foundation.Extensions.Pipelines.Tokens.TrademarkToken, Globus.Foundation.Extensions"/>
</renderField>
</pipelines>
</sitecore>
</configuration>
No comments:
Post a Comment