AEM Touch UI RTE 通用 rtePlugins 配置

AEM Touch UI RTE common rtePlugins configuration

在经典 ui 中,您可以使用 xtype:cqinclude 从不同路径包含 rtePlugins,基本上为标准 RTE 插件创建一个位置,我如何在 Touch UI 中做同样的事情?

我尝试使用花岗岩 UI 包含小部件,但这没有帮助,因为它不是用于包含节点,而是用于包含节点,而是花岗岩 widgets/components

我认为这个过程对于 TouchUI 中的 RTE 来说有点独特。您可能需要创建包含 _cq_editConfig.xml 的文本组件的叠加层。这将有一个指向 ClassicUI 对话框的配置路径 属性,如下例所示。在 RTE 的 ClassicUI dialog.xml 中,configPath 中引用的元素具有名称属性,还包含包含所有 RTE 插件配置的元素 (rtePlugins)

<cq:inplaceEditing jcr:primaryType="cq:InplaceEditingConfig" 
editorType="text" active="true" configPath="/apps/wcm/foundation/components/text/dialog/items/tab1/items/text"/>  

我通过调试 RTE 找到了解决方案,我注意到 RTE 发送请求以从 JCR(使用 JSON servlet)获取 rtePlugins(如 JSON)。通过这种理解,我能够在 rtePlugins 节点上使用 sling:superResourceType 来引用 JCR 上的另一个 rtePlugins 节点。因为 JSON servlet 实际上会尊重 superType 关系。 在此处阅读有关 Sling 资源合并的更多信息:https://docs.adobe.com/docs/en/aem/6-1/develop/platform/sling-resource-merger.html

例如。如果我在 apps/project/customeRtePlugins/rtePlugins 下定义 rtePlugins 节点,那么在我的触摸对话框中的实际 RTE 中,我可以执行以下操作:

<rte
    jcr:primaryType="nt:unstructured"
    sling:resourceType="cq/gui/components/authoring/dialog/richtext"                                                                
    name="./rte"
    useFixedInlineToolbar="{Boolean}true">

    <rtePlugins 
         jcr:primaryType="nt:unstructured"
         sling:resourceSuperType="apps/project/customeRtePlugins/rtePlugins"/>

</rte>