如何从Component DWT中访问组件模板ID?

时间:2012-03-30 07:11:05

标签: tridion

在我的Component的HTML模板中,我需要写出组件模板的TCM URI:

<!-- Start Component Presentation: {"ComponentID" : "@@Component.ID@@",
                        "ComponentTemplateID" : "@@ComponentTemplate.ID@@" } -->

但遗憾的是ComponentTemplate.ID不存在。

如何从我的Component DWT中访问组件模板ID?

3 个答案:

答案 0 :(得分:11)

我担心你必须写一个C#TBB(片段或汇编):

TcmUri templateId = engine.PublishingContext.ResolvedItem.Template.Id;
if (templateId.ItemType == ItemType.ComponentTemplate) {
    Item item = package.CreateStringItem(ContentType.Text, templateId.ToString());
    package.PushItem("ComponentTemplateID", item);
}

您只能从Page DWT布局中访问ComponentTemplate.ID ...

答案 1 :(得分:1)

将“ComponentTemplateID”参数添加到复合模板中的模板调用。然后,您可以使用与包变量相同的方式访问它。

答案 2 :(得分:1)

@@ID@@会在预览时(在CME中,而不是在Template Builder中)或发布时为您提供组件模板TCM URI。