gpt4 book ai didi

tridion - 获取组件的根发布

转载 作者:行者123 更新时间:2023-12-04 18:11:29 25 4
gpt4 key购买 nike

让我们假设以下出版物涉及该问题。

20内容-> tcm:0-20-1







70网页-> tcm:0-121-1

我已经在( 20 Content )出版物下创建了一个组件,并且正在从其中一个子出版物( 70 Web )中发布该组件。我使用Dreamweaver模板编写UI,并从DWT调用C#自定义函数。发布时,此组件在组件表示中将称为121-432。有什么方法可以获取创建组件所在位置的根发布?那我应该得到20-432,而不是121-432。

我尝试了Component.GetBluePrintChain(),它返回了一个包含所有蓝图层次结构的列表。我可以从该列表中获得第一项,以在实际创建该出版物的情况下获得该组件。

由于必须在许多地方调用此方法,因此我只想检查是否有其他直接/更好的方法来完成此操作。

有人可以建议吗?

最佳答案

您将要查看组件的OwningRepository属性,因此:



var componentIdInOwningPublication = new TcmUri(
component.Id.ItemId,
ItemType.Component,
component.OwningRepository.Id.ItemId
);

将其放入自定义的Dreamweaver可调用函数中,您应该会很好。

更新
还有一个称为 CreateTcmUriForPublication的帮助程序方法可以进行翻译。因此,您也可以像这样调用该代码:

var componentIdInOwningPublication = TemplateUtilities.CreateTcmUriForPublication(
component.OwningRepository.Id.ItemId,
component.Id
);

但是,两个片段的最终结果是相同的:组件在其拥有的存储库的上下文中的TcmUri。

关于tridion - 获取组件的根发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13131273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com