We have a powerful ThirdPartySettingsTrait that allows config entities to hold information of settings of third party modules. However when a module (eg. content_translation) that uses this is uninstalled the config entities that have third party settings will be removed.
Only a couple of config entities in core already implement ThirdPartySettingsTrait, but ideally any config entity that exist should have this out of the box. This way any config entity in core and contrib will have this by default.
Remove the trait and implement the functionality in ConfigEntityBase. Add the ability for third party settings to be removed from config entities on module uninstall through a generic
ConfigEntityBase. This has the powerful side effect of making all configuration entities horizontally extensible through third party settings that are both deployable and translatable.
User interface changes
- Removed ThirdPartySettingsTrait
- Adds the ability to dynamically set config schema types using the schema definition type using the
%parent_type<code> placeholder. <code> config_entity: type: mapping mapping: //... third_party_settings: type: sequence label: 'Third party settings' sequence: - type: '[%parent.%parent_type].third_party.[%key]'
Resolves to a type based on the config entity schema. So for example field config entities resolve to
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 85,931 pass(es). View
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch 2361775.30.patch. Unable to apply patch. See the log in the details link for more information. View
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 85,866 pass(es). View