Tridion:Dreamweaver无法解析HTML代码字段

Hus*_*pes 4 dreamweaver templating tridion tridion-2011

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

CT的梦想编织部分如下:

<!-- TemplateBeginRepeat name="Component.HTMLCode" -->
    @@Component.HTMLCode@@
<!-- TemplateEndRepeat -->
Run Code Online (Sandbox Code Playgroud)

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

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

在页面源代码中,输出为" < div align =" center"id =" loginapp"></div> ;"

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

vik*_*mar 6

您应该使用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();    
    }


}
Run Code Online (Sandbox Code Playgroud)