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

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

<!-- Start Component Presentation: {"ComponentID" : "@@[email protected]@",
                        "ComponentTemplateID" : "@@[email protected]@" } -->

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

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

Ответ 1

Боюсь, вам придется писать С# 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...

Ответ 2

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

Ответ 3

@@[email protected]@ предоставит вам URL-адрес TCM шаблона компонента при предварительном просмотре (в CME, а не в построителе шаблонов) или публикации.