我很好奇是否有人知道如何加载已包含默认组件的解析器。
我想要完成的是以下内容:
Form Component
- form-parsys
- input component
- input component
在大多数情况下,这是非常直截了当的。我创建了一个"形式"其中包含parsys的组件。我希望这个表单组件加载一些已经设置的默认输入组件。这些输入组件需要是form-parsys节点的一部分,以便可以在用户添加的输入组件之间重新组织它们。
不确定是否有任何文件,因为我找不到任何文件,但我确定这并非完全不可能,并且想知道是否有人之前做过这样的事情。在我开始之前开始乱砍之前。
谢谢你 布罗迪答案 0 :(得分:7)
我认为你要找的是templates.
在CQ5中,模板可用于创建具有预定义内容的页面,这可以是一个parsys(带有组件),也可以是创建页面时可能需要的任何其他节点。
在您的情况下,您可以定义一个模板,其中包含一个parsys组件以及您在该parsys中想要的任何内容。您还可以设置使用该模板创建页面的位置的规则。
创建(或编辑,因为您可能已有)模板后,您可以使用siteadmin使用模板创建新页面。将创建页面,并且模板的jcr:content下面的所有内容将被复制到新页面中。如果您需要不同类型的初始内容,您甚至可以为同一类页面设置多个模板'
包含带有某些内容的解析的模板示例可能如下所示(我主要是从内存中写这个,可能有错误):
<?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:description="A form"
jcr:primaryType="cq:Template"
jcr:title="A form"
allowedChildren="/apps/app1/templates/home_page"
allowedParents="/apps/app1/templates/form_page"
allowedPaths="[/content(/.*)*]"
ranking="{Long}100">
<jcr:content
jcr:primaryType="cq:PageContent"
sling:resourceType="app1/pages/form_page">
<parsys
jcr:primaryType="nt:unstructured"
sling:resourceType="foundation/components/parsys" >
<component
jcr:primaryType="nt:unstructured"
sling:resourceType="foundation/components/text"
text="here is some text"/>
<!-- more components here-->
</parsys>
</jcr:content>
</jcr:root>