我看到Alisneaky从这个链接回答: Limiting allowed components in a template in cq5 但我对Alisneaky提供的答案提出了疑问,他建议在模板中加入以下内容:
<TEMPLATENAME jcr:primaryType="nt:unstructured">
<content
jcr:lastModified="{Date}2014-04-11T13:04:48.855+10:00"
jcr:lastModifiedBy="admin"
jcr:primaryType="nt:unstructured"
sling:resourceType="/libs/foundation/components/parsys"
components="[/libs/foundation/components/text,
/libs/foundation/components/textimage]">
</content>
</TEMPLATENAME>
我试着将它们放在/ etc / designs / mysite下的.content.xml中,并且没有看到sidekick中显示的任何组件。但是,如果我打开设计对话框,我会看到复选框以及这些预定义组件。
我也将这些行放在我的模板中,这一次,我在sidekick和设计对话框中都没有看到任何内容。
我的问题: 1.把这些线放在哪里?在我的模板中或/ etc / designs / mysite
下的.content.xml中感谢您的帮助
答案 0 :(得分:0)
您需要将此配置放在设计的.content.xml下。所以,如果你必须遵循项目结构:
├── jcr_root
├── apps
│ └── company
│ └── project
│ ├── components
│ │ ├── component1
│ │ └── component2
│ │ └── component3
│ ├── pages
│ │ └── mypage
│ └── templates
│ └── mypage
└── etc
└── designs
└── company
└── project
说,您的页面模板如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="cq:Template"
jcr:title="My page template title"
jcr:description="My page template description"
allowedPaths="[/content(/.*)?]">
<jcr:content
jcr:primaryType="cq:PageContent"
sling:resourceType="company/project/pages/mypage"
cq:designPath="/etc/designs/company/project">
<content
jcr:primaryType="nt:unstructured"
sling:resourceType="foundation/components/parsys"/>
</jcr:content>
</jcr:root>
您可以将/etc/designs/company/project/.content.xml下的.content xml放入以下内容
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:primaryType="cq:Page">
<jcr:content
cq:doctype="HTML_5"
jcr:primaryType="nt:unstructured"
jcr:title="My website design"
sling:resourceType="wcm/core/components/designer">
<mypage jcr:primaryType="nt:unstructured">
<content
jcr:primaryType="nt:unstructured"
sling:resourceType="foundation/components/parsys"
components="[/apps/company/project/components/component1,/apps/company/project/components/component2]">
<section jcr:primaryType="nt:unstructured"/>
</content>
</mypage>
</jcr:content>
</jcr:root>
通过这种方式,您可以将组件company / project / components / component1和company / project / components / component2(基础组件与示例相同)放在具有基础/组件/ parsys类型的内容节点中。 但我建议您始终通过design mode中的设计器进行更改,并使用包管理器导出生成的.content.xml。事实证明,这种方式是对您的设计进行更改的最安全方式。即使您在xml中的更改有效并将它们部署到cq,有时cq拒绝应用这些设置(确切地说,您的情况下,设置显示在sidekick中,但实际上并未应用)。
所以你的第一个问题的答案是,你必须将这些设置放在你的设计中。关于你的第二个问题,除了正确的模板设计路径外,你不必配置任何其他东西。