【问题标题】:Sitecore global headerSitecore 全局标头
【发布时间】:2012-09-26 04:05:30
【问题描述】:
只是想知道最好的做法是设置一个可以在某些页面上覆盖的全局标题(如果需要)?
例如,谷歌跟踪代码在全球范围内应用(到整个网站),并且在一个表单上它需要有自己的跟踪代码并删除全局跟踪代码?
我已尝试创建代码块并在项目模板中设置标准值,尽管仅将代码应用于新创建的页面,但不适用于现有页面。这意味着必须将代码添加到每个单独的页面。
谢谢
【问题讨论】:
标签:
.net
content-management-system
sitecore
【解决方案1】:
您可以使用该字段在 Sitecore 树中创建一种设置项,并将该字段也添加到所选页面。然后使用类似这样的代码:
<%= (!String.IsNullOrEmpty(Sitecore.Context.Item["GoogleId"]))
? Sitecore.Context.Item["GoogleId"]
: MySettingsItem["GoogleId"] %>
【解决方案2】:
当我不得不实现这样的解决方案时,我会创建一个名为“站点设置”的模板并从主页继承它(或使用此模板创建一个项目),然后为站点类编写一些扩展方法。在 Web.config 中存储设置项的 ID 是我通常更愿意避免的事情,我通常只是将模板附加到主页。
这样我就可以得到以下结果。
<%=Sitecore.Context.Site.Settings.AnalyticsCode()%>
这个特定的扩展方法会首先查看上下文项,看看是否填充了“分析代码”字段,如果没有,我会抓取主页并从那里获取该字段。
这种方法当然允许您使用上下文站点或上下文项中可用的许多方便的扩展方法进行扩展。