页面上的多个动态SiteEdit CP

vik*_*mar 17 tridion siteedit

我们在SDL Tridion 2009 SP1中有SiteEdit 2009 SP2,它适用于正常发布的页面.如果我们在页面中有单个动态组件演示(DCP),它也可以正常工作.但是当我们在页面上有多个DCP时,它只占用第一个并忽略所有其他DCP.

这是我的代码

<xsl:variable name="SE_CP_MarkUP">
<![CDATA[ <!-- Start SiteEdit Component Presentation: {"ID" : "cp_%ID%", "ComponentID" : "%ID%", "ComponentTemplateID" : "tcm:XX-XXXXX-32", "Version" : 0, "IsQueryBased" : true  } -->]]>
Run Code Online (Sandbox Code Playgroud)

我在循环中使用这个变量

<xsl:value-of select="XXXX:RegexStringReplace($SE_CP_MarkUP,'%ID%',@ID)" disable-output-escaping="yes"/>
Run Code Online (Sandbox Code Playgroud)

请提出可能存在的问题?

更多详情:

生成的HTML

    <div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287142", "ComponentID" : "tcm:13-287142", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 3, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287162", "ComponentID" : "tcm:13-287162", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 2, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287204", "ComponentID" : "tcm:13-287204", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 1, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287234", "ComponentID" : "tcm:13-287234", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 4, "IsQueryBased" : true  } -->
  HTMLConent
</div>
<div>
  <!-- Start SiteEdit Component Presentation: {"ID" : "cp_tcm:13-287251", "ComponentID" : "tcm:13-287251", "ComponentTemplateID" : "tcm:13-286965-32", "Version" : 3, "IsQueryBased" : true  } -->
  HTMLConent
</div>
Run Code Online (Sandbox Code Playgroud)

SiteEdit设置

<!-- SiteEdit Settings: { "PageID" : "tcm:13-287332-64", "PageVersion" : 2, "TargetTypeID" : "", "ComponentPresentationLocation" : 1, "BluePrinting" : { "PageContext" : "tcm:0-8-1", "ComponentContext" : "tcm:0-13-1", "PublishContext" : "tcm:0-13-1"}} -->
Run Code Online (Sandbox Code Playgroud)

我在运行时超过了html.我只能在第一个CP上悬停时使用siteedit打开第一个组件,如果我将鼠标悬停在任何其他CP上,则无任何操作.

页面上也没有JS错误.

谢谢,Vikas Kumar

vik*_*mar 7

感谢您看到这一点,我刚刚意识到SiteEdit正在完成它的工作.所有SiteEdit标记div都具有相同的绝对位置,这样无论我在哪里悬停,div都显示在顶部.

我正在与设计团队合作对其进行排序.

谢谢,Vikas Kumar


Bar*_*man 5

SiteEdit组件表示标记应始终包含在像DIV这样的HTML元素中,这样SiteEdit就可以区分组件表示的开头和结尾.

所以在你的循环中你应该输出如下内容:

<div>
    <xsl:value-of select="XXXX:RegexStringReplace($SE_CP_MarkUP,'%ID%',@ID)" disable-output-escaping="yes"/>
    <!-- output the content here -->
</div>
Run Code Online (Sandbox Code Playgroud)

  • 请将它包装在<div>或<article>中.将它包装在一个跨度中只会破坏WebKit浏览器上的其他东西 - 它会显示您的年龄. (3认同)