Legacy Knowledge Base
Published Jul. 2, 2025

Adding a repeatable HTML field to a web content loses the custom configuration added inside an EditorConfigContributor file

Written By

Georgel Pop

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

Legacy Article

You are viewing an article from our legacy "FastTrack" publication program, made available for informational purposes. Articles in this program were published without a requirement for independent editing or verification and are provided"as is" without guarantee.

Before using any information from this article, independently verify its suitability for your situation and project.

Issue

  • Using a custom EditorConfigContributor inside CKEditor works well when applying:
    "javax.portlet.name=com_liferay_journal_web_portlet_JournalPortlet"
  • However, if the web content structure has a repeatable element for an HTML field, these defined configurations inside the config contributor are ignored for the first instance of the repeatable element:
    • The custom configuration only applies to the element already created.
    • If we hit the repeat element button, the new element appears with the default settings and not with the ones we overwrite in our config contributor file.
    • Only when we save the content and then reopen it, are the custom settings being applied to the new repeatable elements created.

Environment

  • 7.0 or higher

Resolution

  • In order to apply the same configuration for HMTL repeatable fields you need to add also:
    "javax.portlet.name=com_liferay_dynamic_data_mapping_web_portlet_DDMPortlet"
    because it is is used for the newly created elements.
  • The property mentioned above: 
    "javax.portlet.name=com_liferay_journal_web_portlet_JournalPortlet"
    is used only when you edit an existing field.
  • As a result, it works by adding these two properties like this:
    @Component(
    immediate = true,
    property = {
    "editor.name=ckeditor",
    "editor.name=ckeditor_classic",
    "javax.portlet.name=com_liferay_journal_web_portlet_JournalPortlet",
    "javax.portlet.name=com_liferay_dynamic_data_mapping_web_portlet_DDMPortlet",
    "service.ranking:Integer=100"
    },
    service = EditorConfigContributor.class)

Additional Information

Did this article resolve your issue ?

Legacy Knowledge Base