Pat*_*tan 4 tridion tridion-2011
我正在使用SDL Tridion 2011 SP1中的Dreamweaver TBB.在TBB中,我使用来自不同组件演示的数据.
My Template Building Block looks like this.
Run Code Online (Sandbox Code Playgroud)
主要成分:
<div>@@Component.Schema.Title@@</div>
<!-- TemplateBeginRepeat name="Fields.link" -->
@@RenderComponentPresentation(Field, "tcm:1-8142-32")@@
<!-- TemplateEndRepeat -->
Run Code Online (Sandbox Code Playgroud)
组件模板:tcm:1-8142-32
它的DWT TBB看起来像这样.
<!-- TemplateBeginIf cond="Component.Fields.text" -->
<div>@@RenderComponentField("text",0)@@</div>
<!-- TemplateEndIf -->
Run Code Online (Sandbox Code Playgroud)
当我预览组件时,我得到了输出,所有组件演示都按预期执行.
输出:
SchemaName
data1
data2
Run Code Online (Sandbox Code Playgroud)
然后我用页面TBB创建了页面.
<html>
<head></head>
<body>
<!-- TemplateBeginRepeat name="Components" -->
@@RenderComponentPresentation()@@
<!-- TemplateEndRepeat -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
输出不符合预期.组件模板"tcm:1-8142-32"未执行.
输出:
SchemaName
Run Code Online (Sandbox Code Playgroud)
我想将SiteEdit也用于链接组件.
我是否需要为现有模板添加额外的模板?我正在使用Tridion 2012 UI.
我开始知道我们需要添加isQueryBased,属性必须设置为true.
如果是,是否可以帮助命令将其设置为true?
我不知道问题出在哪里.
任何人都可以帮我修改代码并为嵌入式组件实现SiteEdit吗?
在Dreamweaver模板中,可以通过两种方式调用RenderComponenetPresentation().
如果您正在遍历页面上的组件演示文稿(我认为您正在做什么?)
如果由于某种原因,您需要使用不同的模板渲染组件,而不是将其添加到页面中的模板.
假设您正在执行的是第一个,那么您已使用正确的模板将组件添加到页面中.因此,你可以调用@@ RenderComponentPresentation()@@,不带这样的参数:
<html>
<head></head>
<body>
<!-- TemplateBeginRepeat name="Components" -->
@@RenderComponentPresentation()@@
<!-- TemplateEndRepeat -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
"IsQueryBased"与您的问题无关.它连接到SiteEdit和动态组件演示文稿.
更新 -
看起来你有2个问题:
看问题1 - 假设您的组件数组不是页面上的组件演示文稿,那么您的初始方法几乎是正确的:
@@RenderComponentPresentation(Component.ID,"tcm:xx-xx-xx")@@
Run Code Online (Sandbox Code Playgroud)
您应该能够从数组中获取组件ID,但您需要自己指定ComponentTemplate ID.
出于测试目的,首先硬编码组件模板的Tcm ID.
由于将Tcm ID放在模板中是不好的做法,因此您需要编写TBB以便在包中为您提供.然后,您可以替换用于测试的Tcm Id.
关于您的SiteEdit问题,如果不发布详细说明问题确切性质的新问题,本指南可能会有所帮助.
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |