問題
DXP 7.4では、Webコンテンツやドキュメント、メディアタイプにおけるHTML WYSIWYGエディタをCKEditorからAlloyEditorに変更したい。
以下の portal-ext.properties プロパティを使って変更しようとすると、エディタが変更されません:
editor.wysiwyg.portal-impl.portlet.ddm.text_html.ftl=alloyeditor
- DXP 7.4でエディタを変更することは可能でしょうか?
- 変更できないのであれば、デフォルトのエディタの動作を変更することはできないのでしょうか?
環境
- Liferay DXP 7.4
解決
DXP 7.4でエディタを変更することはできません。
DXP 7.4バージョンでは、「Webコンテンツ」と「ドキュメントとメディア」の「ドキュメントタイプ」の再実装が行われ、どちらのケースでも、エディタはフォーム機能で使用されているストラクチャエディタと統合されました。
この書き換えの一環として、新しいインターフェースでは、 editor.wysiwyg.portal-impl.portlet.ddm.text_html.ftl
プロパティを使用することができなくなりました。
エディタは、代わりに「rich_text」という名前のフォームフィールドを使用して生成されます。 このフィールドは、以下の部分で実装されています:
- フィールドタイプの定義: com.liferay.dynamic.data.mapping.form.field.type.internal.rich.text.RichTextDDMFormFieldType
- コンテキスト投稿者: com.liferay.dynamic.data.mapping.form.field.type.internal.rich.text.RichTextDDMFormFieldTemplateContextContributor
- タイプ設定: com.liferay.dynamic.data.mapping.form.field.type.internal.rich.text.RichTextDDMFormFieldTypeSettings
- フロントエンドの実装: modules/apps/dynamic-data-mapping/dynamic-data-mapping-form-field-type/src/main/resources/META-INF/resources/RichText/RichText.es.js
これらのファイルで分かるように、 ckeditor_classic
が直接使用されており、このコンポーネントはエディタを変更できるようにすることを目的としていません。
そのため、構成設定から変更することはできません。
エディタを完全に変更する必要がある場合は、標準で付属する「rich_text」の実装を置き換えるカスタム フォーム フィールドを作成する必要があります。
エディタの動作を変更することが可能です
EditorConfigContributor を実装することで、フォームフィールド "rich_text" を表示する ckeditor_classic をカスタマイズすることが可能です。
このクラスは、CKEditor がインスタンス化される構成を変更できるため、オプションを追加または削除することができます。
このようなEditorConfigContributorの作成方法についてはドキュメントがありますが、残念ながらこのドキュメントはDXP7.2用のものなので、それを参考にする必要があるかもしれません:
- (DXP 7.2 ドキュメント) Modifying an Editor's Configuration
- (DXP 7.2 ドキュメント) Creating the OSGi Module and Configuring the EditorConfigContributor Class
Liferayコード自体でも EditorConfigContributor の例を見ることができます。次に例を示します。:
- AMJournalEditorConfigContributor
- JournalArticleDescriptionEditorConfigContributor。
- JournalArticleContentEditorOptionsContributor。
- DocumentsAndMediaURLEditorConfigContributor
- CKEditorEmbedConfigContributor
- CKEditorConfigContributor
いずれにせよ、EditorConfigContributorの実装は、製品のカスタマイズとなるため、サポートサービスの対象外となります。
追加情報