如何限制组件仅出现在特定路径(或特定网站(中?
这是对话框.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/....
首先,组件定义在 .content 中.xml而不是在 dialog.xml 中。
其次 - 您不能像限制模板那样限制组件放置。通过此链接,您可以确保该组件没有此类属性。
第三 - 我们可以做的是使用 Disign 模式限制 SideKick 中的组件外观。请查看此答案以查看此方法的详细信息。从这个答案中摘录了一些内容:
在CRXDE中,在
/etc/designs/[your design]/jcr:content
下,您可以定义节点来表示每个模板及其段落,并列出每个模板允许的组件。
。
然后,parsys 节点有一个由 foundation/components/parsys 定义的 sling:resourceType 和一个 String[] 的组件属性。例如,请查看Geometrixx如何定义:http://localhost:4502/crx/de/index.jsp#/etc/designs/geometrixx/jcr%3Acontent/contentpage/par
您还可以在那里检查如何通过UI进行操作。
您可以尝试这样做来限制组件出现在特定站点中:
allowedPaths="[/content/racs(/.*)?]"