【问题标题】:why do we need to inherit parbase component for all image components为什么我们需要为所有图像组件继承parbase组件
【发布时间】:2016-06-07 15:00:18
【问题描述】:

根据 Adob​​e 的 AEM 开发文档,我们应该为所有图像渲染组件继承 parbase 组件。 任何人都可以分享这种必要性背后的理由吗?还有谁能指出这个的其他选择(如果有的话)

【问题讨论】:

标签: aem


【解决方案1】:

请访问 Adob​​e 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 子类化的所有组件都可以使用这个脚本。

在创建您自己的组件时,您不需要将“parbase”添加为超类型,除非您的组件需要通过 parsys 中的拖放来启用。

AFAIK,parbase 组件从不显式使用,仅在添加到 Parsys 时促进组件的呈现。

“parbase 允许组件从其他组件继承属性”

如果您在“/libs/foundation/components”下进行检查,大多数可创作和可拖动组件都将“parbase”设置为它们的“sling:resourceSuperType”,以便它们在添加到段落系统(Parsys 组件)。

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

我希望这会有所帮助。

感谢和问候

考图克·萨尼

【讨论】:

    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2020-01-14
      • 2011-01-15
      相关资源
      最近更新 更多