【问题标题】:Sitecore - Overriden presentation placeholder changes sitewide?Sitecore - 覆盖整个站点的演示占位符更改?
【发布时间】:2011-03-31 01:11:12
【问题描述】:

如何使用户在一个页面上添加到占位符的渲染/子布局在全站范围内显示?

我在网站的页脚中有 4 个占位符。在这些占位符中,用户需要能够添加/删除模块(以子布局的形式),并且这些更改希望在站点范围内发生。当他们使用页面编辑器执行此操作时,它会覆盖由模板标准值设置的表示。目前,例如,用户从主页中删除了一个子布局,它在该项目上工作,但站点中的所有其他页面都保留了标准值。

我怀疑我可能需要更改演示文稿布局的分配方式。好像我想在“共享”子布局中创建一个占位符,但我无法弄清楚...

【问题讨论】:

    标签: sitecore


    【解决方案1】:

    如果这是您想在站点范围内分配并且在站点范围内分配的内容,那么也许您应该更改分配方式。一种方法是在树中设置一个全局部分,我们称之为全局设置 (/sitecore/content/global settings)。在这里,有一个用于页脚模块的部分和一个用于 4 个点中的每一个的 droplink(即 4 个 droplink 字段,每个点一个)。然后为每个位置分配一个模块项——然后每个模块都需要成为树中的一个项。在您的页脚代码中,只需使用子布局渲染器来显示相应的模块:<sc:sublayout path="path to ascx" runat="server" /> -- 当然,这四个中的每一个都是四次。

    不幸的是,这绕过了 Sitecore 项目的正常演示设置,并将演示内容放入模板的字段中。如果您可以提供有关每个模块的更多详细信息,那么我可能会提供更多帮助。例如,您的子布局是使用 DataSource 字段还是硬编码以查看特定数据?

    【讨论】:

    • 我要填充的占位符位于页脚中,并且仅在站点范围内。它将显示诸如最新消息模块之类的内容。这可以使用 DataSource 或者我想它可以是硬编码的。此外,一些模块可能只是由 RichText 填充,而一些模块将从网络服务器的数据中呈现,因此将是一个硬编码的子布局。我玩弄了使用填充项目的下拉链接/树列表的想法,但它对用户来说不如能够在表示层中添加/删除渲染/子布局那么好。
    • 我已经按照您的建议实施了修复。我创建了一个模板,其中包含要使用的子布局的路径,然后我只是使用中继器绑定子布局。感谢您的帮助
    【解决方案2】:

    您是否检查过如何处理条件渲染规则?对于特定条件——字段值、祖先项、数据模板等——使用操作来覆盖数据源。这样,所有子项都会继承DataSource项。

    【讨论】:

    • 它不是需要继承的数据源,而是被覆盖的表示。占位符/渲染/子布局的数据源可以很容易地设置。
    猜你喜欢
    • 2019-01-07
    • 1970-01-01
    • 2011-08-02
    • 2022-08-16
    • 2021-07-07
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多