如何限制组件仅出现在特定路径(或特定网站)中

时间:2016-02-09 10:32:09

标签: components cq5 aem

如何限制组件仅出现在特定路径(或特定网站)中?

这是dialog.xml定义:

<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0"
    xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:Component"
    jcr:title="My Custom Component"
    allowedParents="[*/parsys]"
    allowedPaths="/content/[a-z0-9]{2,5}/[a-z]{2}(_[a-zA-Z]{2})?(/.*)?"
    componentGroup="Grundfos-Responsive"
/>

我的目标是能够在路径

下添加组件
/content/racs/....

只。请注意/content/racs/...是我们网站的相对路径。

我试过这个:

allowedPaths="/content/racs/[a-z]{2}(_[a-zA-Z]{2})?(/.*)?"

但它不起作用。

我也试过allowedParents

allowedParents="/content/racs/[*/parsys]"

但它也没有用。

我想仅在此路径下添加组件:

/content/racs/....

2 个答案:

答案 0 :(得分:0)

首先,组件定义位于 .content.xml 中,而不是 dialog.xml

第二 - 您无法以与限制模板类似的方式限制组件展示位置。从this link开始,您可以确定该组件没有此类属性。

第三 - 我们可以做的是使用Disign Mode限制SideKick中的组件外观。请检查this answer以查看此方法的详细信息。答案的一些摘录:

  

在CRXDE中,在/etc/designs/[your design]/jcr:content下,您可以定义节点来表示每个模板&amp;他们的段落&amp;列出每个允许的组件。

...

  

然后,parsys节点有一个sling:resourceType定义的foundation / components / parsys和一个components属性的String []。例如,查看Geometrixx的定义方式:http://localhost:4502/crx/de/index.jsp#/etc/designs/geometrixx/jcr%3Acontent/contentpage/par

另外there您可以通过用户界面检查如何操作。

答案 1 :(得分:-1)

您可以尝试此操作来限制组件出现在特定网站中:

  allowedPaths="[/content/racs(/.*)?]"