2

是否可以使用 RenderComponentPresentation 方法调用 SiteEdit 可编辑内容脚本以从 TBB 输出内容?

目前,我正在用一条红色边框线包裹该内容。当我滚动右上角的图标时,它表示已删除。但是,组件内容并没有被删除,组件模板或页面的任何更改都已重新发布,组件本身也不是动态组件。

如果我直接从 TBB 调用可编辑脚本,SiteEdit 正在工作,但如果我使用RenderComponentPresentation方法调用另一个组件模板来输出该脚本。我只得到红色边界线并说它已被删除。

可编辑脚本:(直接从 TBB 工作)

<!-- TemplateBeginIf cond="Content != ''" -->
<tcdl:ComponentField name="Content">${Content}</tcdl:ComponentField>
<!-- TemplateEndIf -->

在 TBB 调用下面的方法并且总是得到一个红色边框 RenderComponentPresentation(ComponentID, ComponentTemplateID)

环境:Tridion 2011、SiteEdit 2009 SP3、Windows Server 2008

4

2 回答 2

1

如果您正在渲染一个不在当前页面上的组件,那么预计 SiteEdit 会认为它已被删除。

您需要将组件表示标记为“基于查询”,以便 SiteEdit 知道不要期望它出现在页面上。这将禁用没有意义的功能(例如拖放以在页面上移动 CP),但在其他方面的工作方式相同。

要将其标记为基于查询,您将需要手动输出标记(请参阅启动 SiteEdit 组件演示命令)或使用其他工具为您执行此操作,例如Frank van Puffelen 创建的函数(注意:我相信这些只是适用于 2011 版)。确保IsQueryBased参数设置为true

于 2012-10-05T13:44:22.563 回答
1

我想这是不可行的,RenderComponentPresentation因为您要做的是嵌套组件演示。但是,您可以通过将 siteedit 标记标签直接添加IsQueryBasedtrue

请查看链接以获取更多信息(该部分的底部): http ://sdllivecontent.sdl.com/LiveContent/content/en-US/SiteEdit_2009_SP3/concept_0D0C929C17D74A6292B2AFE0C29F4DCD

另一种方法是在嵌套组件演示之前添加以下标记(IsQueryBased 应该为真):

<!-- Start SiteEdit Component Presentation: {
  "ID" : "MyCP23", "ComponentID" : "tcm:54-7894",
  "ComponentTemplateID" : "tcm:54-3201-32",
  "ComponentVersion" : 2,
  "IsQueryBased" : true,
  "SwapLabel" : "Left"
} -->
于 2012-10-04T19:20:31.713 回答