Bal*_*aji 5 tridion tridion-2011
让我们假设这个问题有以下出版物.
20内容 - > tcm:0-20-1
...
...
...
70网 - > tcm:0-121-1
我在(20内容)出版物下创建了一个组件,我将从其中一个子出版物(70 Web)发布此组件.我正在使用Dreamweaver模板编写UI,我正在从DWT调用C#自定义函数.发布时,此组件在组件表示中将被称为121-432.有没有办法获得组件创建位置的根发布?那是我应该得到20-432,而不是得到121-432.
我尝试过Component .GetBluePrintChain(),它返回一个包含所有蓝图层次结构的列表.我可以从这个列表中获得第一个项目,以获得实际创建它的出版物的这个组件.
由于我必须在很多地方调用此方法,我只是想检查是否有其他直接/更好的方法来完成此操作.
谁有人建议?
您将要查看OwningRepositoryComponent 的属性,因此:
var componentIdInOwningPublication = new TcmUri(
component.Id.ItemId,
ItemType.Component,
component.OwningRepository.Id.ItemId
);
Run Code Online (Sandbox Code Playgroud)
把它放到一个自定义的Dreamweaver可调用函数中,你应该很高兴.
更新
还有一个调用辅助方法CreateTcmUriForPublication来执行转换.所以你也可以像这样调用那个:
var componentIdInOwningPublication = TemplateUtilities.CreateTcmUriForPublication(
component.OwningRepository.Id.ItemId,
component.Id
);
Run Code Online (Sandbox Code Playgroud)
两个片段的最终结果是相同的:组件的TcmUri在其拥有的存储库的上下文中.
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |