6

iframeTridion には、 のようなタグがあるテキスト フィールドを持つコンポーネントが添付されているページがあります<iframe src="http://mysite.com/l/5042/2012-06-21/9pb4y" width="100%" height="500" frameborder="0" style="border: 0" > </iframe>。によって処理されている間、このタグがそのまま残るようにしC# & DWT template building blocksます。しかし、ページが公開される最後に、ページのソースでタグが に変わります<iframe src="http://mysite.com/l/5042/2012-06-21/9pb4y" width="100%" height="500" frameborder="0" style="border: 0" />iframeこのため、ページ ソースはタグの後にコンテンツを表示しません。そのため、タグを含むコンポーネントの後にページに添付されたコンポーネントはページにiframe表示されません。</iframe>終了タグが自己終了タグに置き換えられた理由は/>何ですか?

4

3 に答える 3

6

Frank が述べたように、Convert XML to HTML TBB を使用できます。

(OR)

このスレッドで提供されている Chris のソリューションを検討することもできます。SDL Tridion 2011 SP1 を使用してリッチ テキスト フィールドにアンカー リンクを作成する

スキーマ フィールド定義に xslt を適用します。TBB オプションは、使用する場所に応じて完全な CT/PT に適用されますが、XSLT を使用するとフィールド レベルで使用でき、他のユース ケースで CoreService を使用する場合も同じ形式になります。

于 2012-06-23T16:29:10.010 に答える
1

この問題について尋ねたところ、Jamie Santos がこの解決策を手伝ってくれました。

既にConvert XML to HTML TBBを使用していましたが、終了タグが出力変数に既に配置されているため、これは機能しませんでした。

したがって、次の TBB では、パラメータ Schema [Tags] を使用します。ここで、タグのリスト (カンマ区切り) を渡し、自己終了タグ (例: />) を終了タグ (例: ) で変更します。


    [TcmTemplateTitle("Remove Selft Closing Tag")]
    public class RemoveSelfClosingTag : ITemplate
    {
        public override void Transform(Engine engine, Package package)
        {
            var outputItem = package.GetByName(Package.OutputName);

        //if not  Output in package, return
        if (outputItem == null) return;

        var output = outputItem.GetAsString();
        var tagsCsv = package.GetValue("Tags"); //TBB parameter [tags using CSV] : 'iframe'
        if (string.IsNullOrEmpty(tagsCsv)) return;

        var tags = tagsCsv.Split(',');
        foreach (var tag in tags)
        {
            RemoveSelftTag(tag, ref output);
        }
        outputItem.SetAsString(output);
    }

    //ref because string is immutable.
    private void RemoveSelftTag(string tagName, ref string output)
    {
        var pattern = string.Format("(?'fistPart'<(?'tag'{0})[^>]+?)/>", tagName);
        output = Regex.Replace(output, pattern, @"${fistPart}></${tag}>");
    }
}

于 2014-06-27T17:47:38.517 に答える