使用Sitecore 7 - 有没有办法可以指定模板控件的占位符基于设备?
示例:Placeholder A if the device is Mobile else Placeholder B
这更多地与在移动设备中以不同于桌面网站的方式定位内容有关。
更新
Trayek的answer很棒,确实很有效。虽然,我最终采用了不同的方法。
在我的模板的布局细节中,我添加了一个控件C;将其占位符设置为A,并在其他“参数”部分中添加 HideBydevice 桌面 。然后,我再次添加了控件C;将其占位符设置为B,并在其他参数部分添加 HideBydevice 移动 。
然后在我的代码中,如果参数的值与 Sitecore.Context.Device.Name <相同,则检查 HideBydevice 参数的值并隐藏子布局/控件/ p>
这对我有用。
答案 0 :(得分:6)
您可以做的是使用Sitecore的Rules Engine,您可以在其中创建(或使用预先存在的)Condition
来确定您是否在移动设备上(为此,您可以使用Mobile Device Detector - 虽然我不知道Sitecore 7是否支持该模块。
然后,您还可以使用Action
Set placeholder to value
。
当然,您也可以创建自己的Action。您只需获取RenderingReference
并简单地更改占位符:
var reference = new RenderingReference(this.RenderingID);
reference.Placeholder = "A";
中的更多内容
<强>更新强>
我写了一篇关于如何完成这项工作的博文:Read it here。