给定一个具有组件 A 和组件 A 的页面已发布到 LIVE 目标。稍后,相同的组件 A 已被修改并再次发布到 Staging 目标。
我们需要知道组件 A 的哪个版本已发布到 LIVE,以及组件 A 的哪个版本已发布到 Staging。是否可以获得每个目标中已发布的组件的版本?
给定一个具有组件 A 和组件 A 的页面已发布到 LIVE 目标。稍后,相同的组件 A 已被修改并再次发布到 Staging 目标。
我们需要知道组件 A 的哪个版本已发布到 LIVE,以及组件 A 的哪个版本已发布到 Staging。是否可以获得每个目标中已发布的组件的版本?
您正在寻找的是不可能的 OOTB。但是,您可以使用 推断此信息PublishEngine.GetPublishInfo(IdentifiableObject item)
,它会返回一个ICollection<PublishInfo>
,其中包含项目发布的日期。
然后,您可以将此信息与项目的版本信息相结合,并确定(通过查看发布时间与版本签入时间)发布时使用的版本。
但是,版本可能会被删除,因此无法保证此方法会为您提供正确的信息。
我建议您将 Page 的版本发布为 CustomMeta(可能使用类似于 TDFramework 的一部分 MetaDataProcessor 的东西来即时创建元数据)。然后,您可以查询 Content Delivery DB 并检索此信息。
或者,对于 CM 端解决方案,您可以使用事件系统并拦截发布操作。然后由您来存储页面的版本(例如,应用程序数据可能是一个不错的选择)。