【问题标题】:CQ5 preload a parsys with componentsCQ5 预加载带有组件的 parsys
【发布时间】:2014-03-13 22:15:54
【问题描述】:

我很好奇是否有人知道如何加载带有默认组件的 parsys。

我想要完成的是:

Form Component
  - form-parsys
      - input component
      - input component

在大多数情况下,这非常简单。我创建了一个包含 parsys 的“表单”组件。我想要的是让这个表单组件加载一些已经设置好的默认输入组件。这些输入组件需要成为 form-parsys 节点的一部分,以便它们可以在用户添加的输入组件中重新组织。

不确定是否有任何文档,因为我找不到任何文档,但我确信这并非完全不可能,我想看看是否有人以前做过类似的事情,然后再继续开始黑客攻击离开。

谢谢 布罗迪

【问题讨论】:

    标签: aem


    【解决方案1】:

    我想你要找的是templates.

    在 CQ5 中,模板可用于创建具有预定义内容的页面,这可以是 parsys(带有组件)或创建页面时您可能想要的任何其他节点。

    在您的情况下,您可以定义一个模板,其中包含一个 parsys 组件以及该 parsys 中您想要的任何内容。您还可以为使用该模板创建页面的位置设置规则。

    在您创建(或编辑,因为您可能已经有一个)模板后,您可以使用站点管理员使用您的模板创建一个新页面。页面将被创建,模板的 jcr:content 下面的所有内容都将被复制到新页面中。如果您需要不同类型的“初始内容”,您甚至可以为同一种页面创建多个模板

    包含带有某些内容的 parsys 的模板示例可能如下所示(我主要是凭记忆写的,可能有错误):

    <?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>
    

    【讨论】:

    • 我以前用过模板,所以对它们很熟悉。我从没想过以这种方式使用它们。我认为有类似的 sn-ps 演示了如何将模板与组件一起使用,而不仅仅是页面组件。感谢您为我指明正确的方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    相关资源
    最近更新 更多