为什么我们需要为所有图像组件继承parbase组件

时间:2016-06-01 10:22:31

标签: aem

根据Adobe的AEM开发文档,我们应该为所有图像渲染组件继承parbase组件。 有谁可以分享这种必要性背后的理由?任何人都可以指出其他替代方案(如果有的话)

2 个答案:

答案 0 :(得分:0)

parbase有一个img.GET.java文件,该文件将处理所有具有' img'选择。如果你打电话给' component.img.png'图像将被处理。如果你不从parbase继承,你有两个选择:为你的组件实现img.GET.java或者在组件中保存图像的资源类型。当我有一个将图像数据存储在子节点中的组件时,我通常会这样做。

如果我想将图像保存在名为image的子节点中,这就是我在dialog.xml中添加的内容:

        <image
            jcr:primaryType="cq:Widget"
            cropParameter="./image/imageCrop"
            ddGroups="[media]"
            fileNameParameter="./image/fileName"
            fileReferenceParameter="./image/fileReference"
            mapParameter="./image/imageMap"
            name="./image/file"
            requestSuffix="/image.img.png"
            rotateParameter="./image/imageRotate"
            title="Image"
            xtype="html5smartimage">
            <items jcr:primaryType="cq:WidgetCollection">
                <restype
                    jcr:primaryType="cq:Widget"
                    ignoreData="{Boolean}true"
                    name="./image/sling:resourceType"
                    value="/libs/foundation/components/image"
                    xtype="hidden"/>
            </items>
        </image>

这里讨论了这种方法,例如:AEM Page Image in Page Properties Doesn't Apply a sling:resourceType

答案 1 :(得分:0)

请在Adobe AEM论坛帖子上找个厕所: - http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manager.topic.html/forum__3vh2-why_do_we_needtoin.html

Parbase只是一个组件,您可以从中扩展它以获得一些OOTB功能。

如果我可以用技术语言说,Parbase是一个关键组件,因为它允许组件从其他组件继承属性,类似于面向对象语言(如Java)中的子类。

例如,当您在CRX Explorer中打开/ libs / foundation / components / text节点时,您会看到它具有名为sling:resourceSuperType的属性,该属性引用parbase组件。此处的parbase定义了用于呈现图像,标题等的树脚本,以便从此parbase子类化的所有组件都可以使用此脚本。

在创建自己的组件时,您不需要添加&#39; parbase&#39;作为超类型,除非你的组件需要在parsys中使用拖放功能。

AFAIK,parbase组件从未明确使用,但只有在Parsys中添加时才能促进组件的渲染。

&#34; parbase允许组件继承其他组件的属性&#34;

如果你在&#34; / libs / foundation / components&#34;下查看,大多数可授权和可拖动的组件都有&#39; parbase&#39;设置为他们的吊索:resourceSuperType&#39;这样当它们添加到Paragraph系统(Parsys组件)时,它们就可以继承图像和文本渲染属性。

文档链接: - https://docs.adobe.com/docs/en/cq/5-6-1/wcm/default_components/designmode.html#parbase

我希望这会有所帮助。

谢谢和问候

Kautuk Sahni