在经典ui中,您可以使用xtype:cqinclude
来包含来自不同路径的rtePlugins,基本上为标准RTE插件创建一个位置,如何在Touch UI中执行相同操作?
我尝试使用花岗岩UI包含小部件,但这没有用,因为它不是用于包含节点,而是花岗岩小部件/组件
答案 0 :(得分:2)
我通过调试RTE找到了解决方案,我注意到RTE发送请求从JCR获取rtePlugins(作为JSON)(使用JSON servlet)。根据这种理解,我能够在rtePlugins节点上使用sling:superResourceType
来引用JCR上的另一个rtePlugins节点。因为JSON servlet实际上会尊重superType关系。
阅读更多abour Sling Resource Merger: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>
答案 1 :(得分:1)
我认为这个过程对于TouchUI中的RTE来说有点独特。您可能需要创建Text组件的叠加层,包括_cq_editConfig.xml。这将有一个指向ClassicUI对话框的configPath属性,如下面的示例所示。在RTE的ClassicUI dialog.xml中,configPath中引用的元素具有name属性,并且还包含包含所有RTE插件配置的元素(rtePlugins)
<cq:inplaceEditing jcr:primaryType="cq:InplaceEditingConfig"
editorType="text" active="true" configPath="/apps/wcm/foundation/components/text/dialog/items/tab1/items/text"/>