Как я могу получить доступ к ID шаблона компонента из моего компонента DWT? - PullRequest
10 голосов
/ 30 марта 2012

В шаблоне HTML для моего компонента мне нужно выписать URI TCM шаблона компонента:

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

Но, к сожалению, ComponentTemplate.ID не существует.

Как можноДоступ к идентификатору шаблона компонента из моего DWT компонента?

Ответы [ 3 ]

11 голосов
/ 30 марта 2012

Боюсь, вам придется написать 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);
}

Доступ к ComponentTemplate.ID возможен только из макета страницы DWT ...

1 голос
/ 23 августа 2012

@@ID@@ выдаст вам URI TCM шаблона компонента при предварительном просмотре (в CME, а не в построителе шаблонов) или публикации.

1 голос
/ 30 марта 2012

Добавьте параметр ComponentTemplateID к вызову шаблона в составном шаблоне. Вы можете получить к нему доступ так же, как и к переменным пакета.

...