dreamweaver - Tridion:Dreamweaver 不解析 HTML 代码字段

标签 dreamweaver tridion templating tridion-2011

我们有一个复合 CT,它输出一个组件的代码字段。

CT的织梦部分如下:

<!-- TemplateBeginRepeat name="Component.HTMLCode" -->
    @@Component.HTMLCode@@
<!-- TemplateEndRepeat -->

但是,此 CT 在页面上显示代码字段,而不是转换为 HTML。

例如:如果代码字段的值为 ->
<div align="center" id="loginapp"></div>然后这个相同的值显示在页面上而不是解析。

在页面源代码中,我们得到的输出为“
;”

我知道如果我们使用 C#,这可以解决。
但是有没有办法使用 Dreamweaver 来阻止特殊字符的转换?

最佳答案

您应该使用 dwt 将代码发布到服务器,我的意思是为每个代码创建新的 dwt 并将代码粘贴到 dwt 中。您可以将此 dwt 与 emply 组件或资源类型组件一起使用。

或者如果您想使用文本字段,请尝试遵循 tbb 代码。在模板末尾添加此 tbb。

public override void Transform(Engine engine, Package package)
    {


        Regex objExp = new Regex(@"&#\d+;", RegexOptions.IgnoreCase);
        Regex objDecExp = new Regex(@"[^0-9]", RegexOptions.IgnoreCase);

        this.Initialize(engine, package);
        string strPackage = package.GetValue("Output");

        strPackage = unescapeHTML(strPackage);

        strPackage = objExp.Replace(strPackage, delegate (Match match)
        {

            string strInput = match.ToString();
            strInput = objDecExp.Replace(strInput, "");


            int intValue = Convert.ToInt32(strInput);
            char strChar = (char)intValue;

            return strChar.ToString();
        });



        strPackage = strPackage.Trim();

        Item objOutput = package.CreateStringItem(ContentType.Html, strPackage);
        package.PushItem("Output", objOutput);

    }

    private string unescapeHTML(string strInput)
    {
        StringBuilder strOutput = new StringBuilder(strInput);
        strOutput.Replace("&quot;", "&#34;");
        strOutput.Replace("&nbsp;", "&#32;");
        strOutput.Replace("&amp;", "&#38;");
        strOutput.Replace("&apos;", "&#39;");
        strOutput.Replace("&lt;", "&#60;");
        strOutput.Replace("&gt;", "&#62;");
        strOutput.Replace("&iexcl;", "&#161");
        strOutput.Replace("&cent;", "&#162");
        strOutput.Replace("&pound;", "&#163");
        strOutput.Replace("&curren;", "&#164");
        strOutput.Replace("&yen;", "&#165");
        strOutput.Replace("&brvbar;", "&#166");
        strOutput.Replace("&sect;", "&#167");
        strOutput.Replace("&uml;", "&#168");
        strOutput.Replace("&copy;", "&#169");
        strOutput.Replace("&ordf;", "&#170");
        strOutput.Replace("&not;", "&#172");
        strOutput.Replace("&shy;", "&#173");
        strOutput.Replace("&reg;", "&#174");
        strOutput.Replace("&macr;", "&#175");
        strOutput.Replace("&deg;", "&#176");
        return strOutput.ToString();    
    }


}

关于dreamweaver - Tridion:Dreamweaver 不解析 HTML 代码字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12366518/

相关文章:

html - 解析错误 : Unexpected end tag - How to clean html tags?

html - Dreamweaver 的替代品?

tridion - Tridion 2011 SP1 CM 管理单元中的隐藏组织项目选项

php - 模板系统中的 If 语句

javascript - "myFunction"已定义但从未使用且缺少 "use strict"语句冲突

php - 无法正确插入数据库,请帮忙

tridion - SmartTarget FredHopper 日期/触发器配置

Tridion 用户界面 2012 - 401 未经授权

javascript - Handlebars 中模板的条件渲染

javascript - 组装助手中的类型错误