加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在sitecore中创建自定义令牌

发布时间:2020-12-15 23:32:34 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个自定义标记,如果用户在富文本编辑器字段中输入某些文本,该文本将显示一个值.所以说用户在富文本编辑器字段中输入@@ tester,“今天月是@@ tester”.我有c#试图在sitecore的任何富文本编辑器字段中找到@@ tester,如果它找到该标记,则在标题
我正在尝试创建一个自定义标记,如果用户在富文本编辑器字段中输入某些文本,该文本将显示一个值.所以说用户在富文本编辑器字段中输入@@ 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读