2016-02-09 71 views
0

如何限制組件僅出現在特定路徑(或特定網站)中?如何限制組件僅出現在特定路徑(或特定網站)中

這裏是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/.... 

回答

0

首先,組件定義爲.content.xml,而不是在dialog.xml

第二 - 您不能限制組件放置以類似的方式,因爲我們可以限制模板。從this link可以確定,該組件沒有這些屬性。

第三 - 我們可以做的,是使用Disign Mode來限制SideKick中的組件外觀。請檢查this answer以查看此方法的詳細信息。從這個問題的答案的一些提取物:

在CRXDE,/etc/designs/[your design]/jcr:content下,你可以定義節點來代表你的每一個模板&他們的段落&列表中爲每個允許的成分。

...

的parsys節點然後具有吊索:基礎/組件/ parsys的定義和resourceType爲字符串[]的部件屬性。舉一個例子,檢查出的Geometrixx一個是如何定義的:http://localhost:4502/crx/de/index.jsp#/etc/designs/geometrixx/jcr%3Acontent/contentpage/par

而且there您可以檢查如何通過UI做。

+0

感謝您的建議,但你的第三個答案,它並沒有限制組件,可以在其他網站看到。它是可見的,可以拖動到/ content/racs/...中的解析器,也可以添加到/ content/site2 ....和/ content/site3/..等等。 – vixenpixie14

+0

@Racs,你的網站有相同的設計? –

+0

是的網站有相同的設計。該組件應該只出現在路徑/ content/site1下......它不應該是可見的,或者不應該能夠將它添加到/ content/site2中的解析器中,等等。謝謝 – vixenpixie14

0

,你可以嘗試一下本作限制組件出現在一個特定的網站:

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

感謝您的建議,但沒有奏效。 – vixenpixie14

相關問題