在Sitecore中,我已经为“标题,顶级菜单,徽标,搜索,登录按钮等等创建了基本模板和渲染,它们位于网站所有页面的标题中。”
同样的模板和渲染正在其他网站中使用,因此我们无法在标准字段中设置值。
现在问题是“假设我们在一个站点中有100个页面,那么我们必须去每个页面并添加/更新渲染和数据源。
是否有任何方式“标题渲染”包含子渲染,并通过放置“标题渲染”渲染其所有子渲染。
标题组合组件===>
Sitecore Marketplace上有一个复合组件模块:https://marketplace.sitecore.net/Modules/C/Composite_components.aspx?sc_lang=en
这个填充符合您的要求。
它的工作原理是创建一个“复合组件”项,然后将标题的渲染添加到该组件。例如。标志,导航等......
然后在页面模板的标准值中,添加新的Composite Component
渲染并将数据源设置为您创建的组件项。
然后,模块将组件项演示中的渲染注入到当前项中。所以你只需要更新一个地方来更新所有页面等...
我在一些生产网站上运行它并且运行良好。它甚至支持体验编辑器。
我不认为有开箱即用的解决方案。 SxA通过站点级别的部分和页面设计解决了这个问题。刚写了一篇关于它的博客: http://reinoudvandalen.nl/blog/sitecore-experience-accelerator-partial-designs-and-page-designs/
我也做了一些可能对你有帮助的东西:部分布局预设http://reinoudvandalen.nl/blog/sitecore-partial-layout-presets/ 它甚至允许您存储每个站点的预设,但请记住它注入组合布局。如果您修改预设,则它不会应用于注入它的页面(尽管您可能能够为每个站点提供一些共享数据源)。
最后,显而易见的解决方案是为每个站点创建一个页面模板,这样您就可以为每个站点提供标准值。
你可能想看一下使用Placeholder Fallback。
这将允许您将组件和渲染添加到顶级页面,然后子页面将“回退”使用插入到项目层次结构中顶级页面的占位符中的渲染。如果需要,编辑者还可以在每个子页面上插入特定于页面的渲染。
如果您不想自定义代码并且只有开箱即用的功能,那么您可以使用设备。您可以在有关Set up a device layout的文档中找到更多信息。创建设备后,您可以为每个站点指定不同的默认设备:
现在,当您在模板的Presentation Details
上打开__Standard Values
时,您可以为每个设备指定不同的Layout
或Renderings
,即AltSiteDevice
的不同qazxswpoi