c# – 如何在sitecore中创建自定义令牌
我正在尝试创建一个自定义标记,如果用户在富文本编辑器字段中输入某些文本,该文本将显示一个值.所以说用户在富文本编辑器字段中输入@@ tester,“今天月是@@ tester”.我有c#试图在sitecore的任何富文本编辑器字段中找到@@ tester,如果它找到该标记,则在标题字段中找到与要替换文本的位置匹配的标记.所以ie:
Item Name = token Item ID = {06912058-6U9A-4BBF-BAE3-9306974EBE68} Title = @@tester Content (rich text editor) = February 我到目前为止: namespace LonzaWeb.Pipeline.RenderField { public class AddToken { public void Process(RenderFieldArgs args) { Item currentItem = Sitecore.Context.Item; if ((args.FieldTypeKey == "rich text") && currentItem.TemplateID.ToString() == "{06912058-6U9A-4BBF-BAE3-9306974EBE68}") { var tItem = currentItem.Fields["Title"].ToString(); if (tItem != null) { Regex regex = new Regex(tItem); Match match = regex.Match(tItem); } } } } } 此外,我正在尝试使用RegEx模式匹配.我已将此添加到webconfig文件中以确保它查找它. 解决方法
扩展< renderField>管道可能是一个更好的方法.
可以使用自己的Process方法提供新类型.可以使用RenderFieldArgs.FieldTypeKey检查正在处理的字段的类型.可以使用每个支持的标记的值更新FieldValue属性. 管道中的每个处理器都会将生成的args传递给下一个处理器.我会在GetTextFieldValue之后添加这个补丁. http://www.sitecore.net/learn/blogs/technical-blogs/sitecorebetter/posts/2013/06/extending-the-sitecore-renderfield-pipeline.aspx http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2011/08/replace-tokens-in-rich-text-fields-using-the-sitecore-aspnet-cms.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |