Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move TinyMCE code into its own module #2

Open
9 of 10 tasks
GuySartorelli opened this issue Dec 12, 2024 · 1 comment
Open
9 of 10 tasks

Move TinyMCE code into its own module #2

GuySartorelli opened this issue Dec 12, 2024 · 1 comment
Assignees

Comments

@GuySartorelli
Copy link
Member

GuySartorelli commented Dec 12, 2024

git TinyMCE 7 changed its license to GPLv2+, which isn't compatible with our licenses, so we need to swap to a new editor.

Regardless of whether a new editor is available in CMS 6.0.0 or in a future minor release, we want to:

  1. Make sure TinyMCE 6 is still available for people who aren't able to swap away from it immediately
  2. Move the TinyMCE 6 code into its own module that can be included or excluded from projects easily.

Notes

Acceptance Criteria

The below all apply for CMS 6 only

  • All TinyMCE related code (JavaScript, PHP, YAML, localisations etc) from all supported modules is moved into a single new repository
  • Most (maybe all) localisations are not in transifex, though there may be some that are for plugins that need to be migrated, including in transifex itself - these must be copied not moved so as not to break CMS 5)
  • The default "cms" editor config is provided in the new module
  • TinyMCE plugins that rely on a specific module (e.g. "link to a page") are only applied if the corresponding module is installed
  • There is configuration to disable the "cms" editor config from being set (e.g. if someone has two editor modules installed, they can pick which one controls the "cms" editor config with a simple YML config variable)
  • When this module is installed, the behaviour is identical to the CMS 5 behaviour
  • This module is installed as part of silverstripe/installer by default for CMS 6 (not recipe-cms)
  • This module is not a dependency of any of our modules
  • If no WYSIWYG module is installed, DBHTMLText will auto-scaffold an HTMLEditorField rendered as a textarea tag
  • The changelog makes it very clear that this (or an alternative if it exists) must be included as a dependency by projects when upgrading from CMS 5 to CMS 6.

PRs

CMS 5

CMS 6

Important

Merge the above first and then reassign to Guy - the dist bundle in the tinymce module won't be buildable by CI until that's done

kitchen sink CI run with TinyMCE (The TinyMCE unit tests are in g2)
kitchen sink CI run with all PRs except TinyMCE (subsites and elemental behat should both fail, as they have explicit tests that can only be satisfied by tinymce right now)

Note: Upon reviewing the behat tests in elemental, it's clear they are explicitly for testing WYSIWYG functionality within elemental blocks and cannot be moved elsewhere.

Still needs to be done

@GuySartorelli GuySartorelli self-assigned this Feb 12, 2025
@GuySartorelli GuySartorelli transferred this issue from silverstripe/silverstripe-admin Feb 18, 2025
@GuySartorelli GuySartorelli removed their assignment Mar 10, 2025
@GuySartorelli
Copy link
Member Author

I'll make the requested changes once the CMS 5 PRs are merged. For now we should focus on coming to an agreement on #1 (comment) which is the only thing holding those PRs back from being merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants