首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用XSLT TBB时,如何在SiteEdit中启用内联字段编辑?

在使用XSLT TBB时,如何在SiteEdit中启用内联字段编辑?
EN

Stack Overflow用户
提问于 2012-03-12 21:11:01
回答 2查看 581关注 0票数 2

我正在与SDL Tridion World和SiteEdit 2009 SP3的XSLT Mediator一起开发SDL Tridion 2011 SP1。我已经创建了XSLT TBB,并启用了组件模板的内联编辑,在页面模板中启用了SiteEdit。我已经用它创建了这个页面并发布了它。

但并不是每个字段都启用了SiteEdit。当我查看页面预览的源代码时,它只有一个用于整个组件的span标记。但通常情况下,如果为组件启用了SiteEdit,我们应该为每个字段设置跨度标记。

我被困在这一点上了。我已经使用XSLT中介器创建了XSLT TBB。

有人能建议我们是否可以使用XSLT TBB在复合模板中启用SiteEdit吗?如果可以做到,建议我做的步骤。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-12 21:33:49

如果将XSLT TBB与XSLT Mediator一起使用,则需要手动包装要为SiteEdit启用的字段,以便它们出现在模板的输出中。考虑使用类似以下代码的XSLT包装您的字段:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <xsl:for-each select="//*[local-name()='paragraph']">
            <div>
                <tcdl:ComponentField name="paragraph[{position() -1}].text" index="0">
                    <xsl:apply-templates select="./*[local-name()='text']"/>
                </tcdl:ComponentField>
            </div>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

这段代码遍历每个嵌入的段落字段,输出文本字段值,并用适当的SiteEdit TCDL语法对其进行包装。

票数 4
EN

Stack Overflow用户

发布于 2012-03-12 21:34:44

它取决于模板(XSLT、DWT、VBscript或您使用的任何技术)来围绕每个字段生成一个元素。

代码语言:javascript
复制
 <span>
     <!-- Start SiteEdit Component Field: { ... } -->
     This is the value of the field
 </span>

通常,您将在DWT中调用RenderComponentField,它将使用<tcdl:ComponentField>元素标记每个字段。然后,通过"Enable inline editing“TBB将该元素转换为正确的元素(上面示例中的span )。

因此,如果从XSLT生成HTML,请确保:

  • 为字段调用RenderComponentField
  • 输出<tcdl:ComponentField自己或
  • 输出包装元素并自己输出<代码>H213<!-- Start SiteEdit Component Field ><代码>F214
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9667640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档