在2012 UI/XM中检测我们何时进行CMS预览与动态预览时出现问题

Wil*_*ill 4 tridion tridion-2011

我有模板代码(2011 SP1),它通过检查来检测是否正在使用CMS预览engine.RenderMode(这将是PreviewDynamic).这将确保应用服务器通常为已发布页面添加的内容(如CSS,JS,导航元素等)被注入到渲染输出中,因此预览在CMS中看起来很不错.

Tridion 2012 UI/XM创建了用于动态预览的临时文件,事实证明,在发布这些文件时,渲染模式也是如此PreviewDynamic,这给我一个问题,就像实际发布页面的情况一样,我不想要注入东西(在这种情况下,app服务器使用.NET母版页来处理这个问题)

纵观可能的值RenderMode,我们有.NET API中Publish,PreviewStaticPreviewDynamic.

所以我的问题是:

  1. 如何在模板代码中区分CMS预览和DYnamic预览
  2. 何时(如果有的话)是RenderMode PreviewStatic

Wil*_*ill 5

我有一个部分解决方案(第一个问题).如果您使用组合,RenderModeengine.PublishingContext.PublicationTarget可以检测到CMS预览与动态预览与正常发布:

  • CMS预览 - RenderMode:DynamicPreviewPublicationTarget:null
  • 动态预览 - RenderMode:DynamicPreviewPublicationTarget:not null
  • 正常发布 - RenderMode:PublishPublicationTarget:not null

Stil不确定何时使用PreviewStatic ...?