AEM Touch UI RTE общая конфигурация rtePlugins
В классическом интерфейсе вы можете использовать xtype:cqinclude
включить rtePlugins по другому пути, создавая одно место для стандартных плагинов RTE. Как я могу сделать то же самое в Touch UI?
Я пытался использовать гранитный интерфейс включения виджета, но это не помогает, поскольку он предназначен не для включения узлов, а гранитных виджетов / компонентов
2 ответа
Я нашел решение, отладив RTE, и заметил, что RTE отправляет запрос на получение rtePlugins (как JSON) из JCR (используя сервлет JSON). с этим пониманием я смог использовать sling:superResourceType
на узле rtePlugins для ссылки на другой узел rtePlugins на JCR. так как сервлет JSON будет на самом деле уважать отношения superType. Подробнее об объединении ресурсов Sling можно узнать здесь: https://docs.adobe.com/docs/en/aem/6-1/develop/platform/sling-resource-merger.html
например. если я определяю узел rtePlugins под apps/project/customeRtePlugins/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>
Я думаю, что этот процесс немного уникален для RTE в TouchUI. Вероятно, вам потребуется создать наложение компонента Text, включая _cq_editConfig.xml. У него будет свойство configPath, указывающее на диалоговое окно ClassicUI, как вы можете видеть в примере ниже. В ClassicUI dialog.xml для RTE элемент, указанный в configPath, имеет атрибут name и также содержит элемент (rtePlugins), который содержит все конфигурации подключаемого модуля RTE.
<cq:inplaceEditing jcr:primaryType="cq:InplaceEditingConfig"
editorType="text" active="true" configPath="/apps/wcm/foundation/components/text/dialog/items/tab1/items/text"/>