如何将组件限制为仅显示在特定路径(或特定网站)中



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

这是对话框.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(/.*)?]"

相关内容

最新更新