diff --git a/CHANGELOG.md b/CHANGELOG.md index ff23991..1f72209 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ before starting to add changes. Use example [placed in the end of the page](#exa ## [Unreleased] +- [PR-326](https://github.com/OS2Forms/os2forms/pull/326) + Updating ckeditor -> ckeditor5. - [PR-322](https://github.com/OS2Forms/os2forms/pull/322) Update Digital Post handler error messages. - [PR-320](https://github.com/OS2Forms/os2forms/pull/320) diff --git a/os2forms.info.yml b/os2forms.info.yml index d08e8e9..d7e530d 100644 --- a/os2forms.info.yml +++ b/os2forms.info.yml @@ -5,7 +5,6 @@ package: OS2Forms core_version_requirement: ^9 || ^10 dependencies: - - 'drupal:ckeditor' - 'drupal:editor' - 'drupal:entity_print' - 'drupal:eu_cookie_compliance' diff --git a/os2forms.install b/os2forms.install index b608514..9d1bece 100644 --- a/os2forms.install +++ b/os2forms.install @@ -8,6 +8,7 @@ use Composer\InstalledVersions; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\filter\Entity\FilterFormat; use Drupal\taxonomy\Entity\Term; use Symfony\Component\Yaml\Yaml; @@ -237,3 +238,30 @@ function os2forms_update_103001() { function os2forms_update_103002() { \Drupal::service('module_installer')->install(['os2web_key']); } + +/** + * Implements hook_update_N(). + * + * Updating ckeditor -> ckeditor5. + */ +function os2forms_update_103003() { + \Drupal::service('module_installer')->install(['ckeditor5']); + + $editor_storage = \Drupal::entityTypeManager()->getStorage('editor'); + /** @var \Drupal\ckeditor5\SmartDefaultSettings $smart_defaults */ + $smart_defaults = \Drupal::service('ckeditor5.smart_default_settings'); + + foreach (FilterFormat::loadMultiple() as $format) { + /** @var \Drupal\editor\EditorInterface $editor */ + $editor = $editor_storage->load($format->id()); + if (!$editor || $editor->getEditor() !== 'ckeditor') { + continue; + } + + [$new_editor] = $smart_defaults + ->computeSmartDefaultSettings($editor, $format); + $new_editor->save(); + } + + \Drupal::service('module_installer')->uninstall(['ckeditor']); +}