在我的Component的HTML模板中,我需要写出组件模板的TCM URI:
<!-- Start Component Presentation: {"ComponentID" : "@@Component.ID@@",
"ComponentTemplateID" : "@@ComponentTemplate.ID@@" } -->
但遗憾的是ComponentTemplate.ID
不存在。
如何从我的Component DWT中访问组件模板ID?
答案 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。