在Adobe CQ5页面之间共享内容

在Adobe CQ5页面之间共享内容,adobe,components,aem,Adobe,Components,Aem,我目前正在Adobe CQ5中为一个站点创建CMS。要求使用的组件之一是菜单的自定义导航组件。用户将能够输入一系列特定于该页面的链接和URL 更重要的是,他们需要能够与其他几个页面共享此菜单(但不是全部,通常这将是同一文件夹中的其他页面)。还有几个不同的菜单,每个菜单在各自的页面组之间共享 因此,我想问题是,让一个菜单编辑一次,并且更改反映在多个页面上,最简单的方法是什么?一个选项是创建一个“数据”组件,即用于编写数据实例的组件。每个数据实例将包含菜单数据,并允许作者更改菜单数据。然后创建第二个

我目前正在Adobe CQ5中为一个站点创建CMS。要求使用的组件之一是菜单的自定义导航组件。用户将能够输入一系列特定于该页面的链接和URL

更重要的是,他们需要能够与其他几个页面共享此菜单(但不是全部,通常这将是同一文件夹中的其他页面)。还有几个不同的菜单,每个菜单在各自的页面组之间共享

因此,我想问题是,让一个菜单编辑一次,并且更改反映在多个页面上,最简单的方法是什么?

一个选项是创建一个“数据”组件,即用于编写数据实例的组件。每个数据实例将包含菜单数据,并允许作者更改菜单数据。然后创建第二个组件,该组件是数据的使用者,即引用现有数据组件实例并呈现数据的组件。然后,您可以根据需要使用任意多的页面来呈现相同的菜单数据,如果基础菜单数据实例发生更改,它将影响所有页面


你可以考虑构造你的“数据”实例,这样它们将被创建在一个单独的内容区域中,你可能希望使其与普通内容页面不同,如果你需要控制谁可以修改菜单,那么可能会有不同的创作权限。这也将使连接更容易,因此作者可以选择一个现有的数据实例用于其使用者组件。

另一个选项是使该组件从其父组件“继承”。为此,您可以在对话框中添加一个复选框,该复选框将指示组件是否应从其父级继承。如果是这样,您的组件代码可以在父页面上爬树查找导航组件,并在找到时加载它。如果没有,组件可以从其当前资源加载数据


这将允许您创建任意数量的单独导航组,并允许内容作者编辑导航,而无需转到另一个配置区域,这可能会中断编辑体验。

创建一个页面组件,您可以在其中通过iparsys包含菜单组件,并在子页面上继承该页面(对于特定模板)组件。当您在菜单组件中进行任何更改时,它将反映到所有页面。

这实际上是我找到的执行此操作的路线。谢谢