SDL Tridion 的内容管理器模板 API (TOM.NET) 提供了检测发布或呈现上下文的方法。
用例
- 向特定环境提供调试信息(例如,仅在暂存时提供 TCM Uris)
- 在预览中显示不同的标记(例如显示指向已发布页面的链接)
- 在 Experience Manager 或 SiteEdit 中显示不同的可创作字段
我已经看过并尝试了一些示例,但是在与同事Stan和Eric聊天之后,我想确保我关注 TOM.NET (6.1 / Tridion 2011)。
场景
- 发布到特定的发布目标(通常是“Live”和“Staging”)
- 内容管理器资源管理器(CME) 预览
- Experience Manager (XPM) 的会话预览渲染
- (添加)模板生成器
1. 发布到目标(或从出版物)
Tridion.ContentManager.Publishing.PublishEngine.GetPublishInfo(IdentifiableObject item)
项目将是一个页面或组件。这将返回一个PublishInfo
对象集合,其中包括PublicationTarget
确认您要发布到的位置。
Tridion.ContentManager.Templating.PublishingContext.PublicationTarget
也有PublicationTarget
。
2.芝商所预览
PublicationTarget 是null
,这是有道理的,因为您没有 Publication Target 。:-)
3. 会议预览
使用RenderMode
下面的枚举Tridion.ContentManager.Publishing
,它具有:
- '发布' (0)
- 'PreviewStatic' (1)
- 'PreviewDynamic' (2)
PublicationTarget 不会null
用于 Session Preview,它并不是真正的发布。
4.(添加)模板生成器
?
Alexander Klock 还描述了一些相关示例,这些示例涵盖了除 CME Preview 之外的大部分内容。
问题)
我错过了任何场景吗?发布到特定发布目标、定期预览和 XPM 会话预览?
我应该如何避免硬编码 PublicationTargets(例如检查字符串值而不是 TCM Uris 更好)?
更新:根据 Vikas 的回答将模板生成器添加到列表中,我怎么知道我正在模板生成器中渲染?