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

时间:2012-10-04 17:34:32

标签: tridion siteedit

是否可以调用SiteEdit可编辑内容脚本以使用RenderComponentPresentation方法从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

2 个答案:

答案 0 :(得分:1)

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

来实现此目的

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

替代方法是在嵌套组件表示之前添加以下标记(IsQueryBased应该为true):

<!-- Start SiteEdit Component Presentation: {
  "ID" : "MyCP23", "ComponentID" : "tcm:54-7894",
  "ComponentTemplateID" : "tcm:54-3201-32",
  "ComponentVersion" : 2,
  "IsQueryBased" : true,
  "SwapLabel" : "Left"
} -->

答案 1 :(得分:1)

如果要渲染的组件不在当前页面上,那么可以预期SiteEdit会将其视为已删除。

您需要将组件演示标记为“基于查询”,以便SiteEdit知道不会在页面上预期它。这将禁用无意义的功能(例如拖放以在页面上移动CP),否则将以相同的方式工作。

要将其标记为基于查询,您需要手动输出标记(请参阅Start SiteEdit Component Presentation command)或使用其他工具为您执行此操作,例如函数created by Frank van Puffelen注意:我相信这些仅适用于2011版本)。确保IsQueryBased参数设置为true