0

我知道在同一页面/组件上包含具有相同路径的 parsys 会导致创作问题。

<cq:include path="par" resourceType="/apps/myproj/components/layout/parsys" /> 
<cq:include path="par" resourceType="/apps/myproj/components/layout/parsys" />

但我有一种情况,我被迫这样做。我实际上是使用像这样的变量参数来管理路径名

 <cq:include path="${tabs.nodeName}"
                      resourceType="/apps/myproj/components/layout/parsys" />

这是在 forEach 中迭代,并且tabs.nodeName的值在每次迭代后都会发生变化。

但是这个循环本身被复制了两次,一次用于带有桌面类的桌面视图,第二次用于带有移动 css 类的移动视图。

所以最后,我得到了两个cq:includes

具有相同路径的一个用于桌面另一个用于移动

<cq:include path="${tabs.nodeName}"
                      resourceType="/apps/myproj/components/layout/parsys" />

 <cq:include path="${tabs.nodeName}"
                      resourceType="/apps/myproj/components/layout/parsys" />

我该如何解决这个问题?

4

2 回答 2

0

您可以添加范围标识符并将其用作路径的附加元素。如果您不知道上下文,它可以是语义(桌面/移动)或只是数字(从零开始,每一步递增)

<c:set var="context" value="desktop"/>

<cq:include path="${tabs.nodeName}-${context}"
                  resourceType="/apps/myproj/components/layout/parsys" />
于 2018-02-13T18:43:59.000 回答
0

我建议要么在编辑/设计模式下不渲染移动段落系统,要么disabled在生成段落系统的移动渲染时将 WCMMode 设置为。通过这种方式,您可以在不破坏创作界面的情况下保持创作一次并使用两次的能力。

于 2018-02-14T15:51:12.870 回答