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

时间:2012-10-17 07:25:07

标签: tridion tridion-2011

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

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

查看.NET API中RenderMode的可能值,我们有PublishPreviewStaticPreviewDynamic

所以我的问题是:

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

1 个答案:

答案 0 :(得分:5)

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

  • CMS预览 - RenderMode:DynamicPreview PublicationTarget:null
  • 动态预览 - RenderMode:DynamicPreview PublicationTarget:not null
  • 正常发布 - RenderMode:Publish PublicationTarget:not null

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