Skip to content
Snippets Groups Projects
  1. Nov 10, 2022
  2. Nov 03, 2022
  3. Nov 02, 2022
  4. Oct 29, 2022
  5. Oct 27, 2022
  6. Oct 26, 2022
  7. Oct 25, 2022
  8. Oct 14, 2022
  9. Oct 06, 2022
  10. Oct 05, 2022
  11. Oct 04, 2022
  12. Oct 01, 2022
    • Oliver Hader's avatar
      [!!!][FEATURE] Integrate CKEditor5 as new RTE · 4c6d5fdf
      Oliver Hader authored
      This change adds CKEditor v5, which is a completely new
      editor compared to the previous CKEditor 4. It works without
      iframes, and has a new plugin API and editing API, allowing to
      work faster and easier with rich text content editing.
      
      CKEditor v4 is removed completely from TYPO3 v12, as its
      support lifecycle will end in late 2023.
      
      CKEditor v5 is created as a bundle file with a list of built-in plugins
      (see ckeditor5-bundle.js).
      
      TYPO3 ships with a typo-link custom plugin, which can be added and
      loaded dynamically via the RTE configuration yaml file.
      
      As most of the editor configuration is changed due, a migration
      tool will migrate as many options as possible. However, PLEASE NOTE:
      It might be possible that data loss occurs as some features have
      to be enabled explicitly.
      
      As the iframe is removed, the contents.css now needs a CSS prefix
      for the editor in order to apply styling. This is done via a SCSS
      parser (added as PHP dependency) for the time being, until we find
      a better solution to create custom CSS files for RTEs.
      
      This change is marked as breaking as CKEditor 4 configuration and
      integration is removed, and due to the possible data loss, which
      might happen due to invalid plugins (based on CKEditor 4) which then
      do not render their contents anymore.
      
      The new editor and its configuration is still experimental as
      we need to stabilize our integration code to cover more scenarios.
      
      Supported functionality:
      * Configurable toolbar items via RTE presets
      * Custom typolink plugin + dynamically loaded plugin architecture via ES6
      * Custom contents.css file loaded
      * Migration for various config settings (see CKEditor5Migrator class)
      
      Missing features which might get added later-on:
      * extended autolinking plugin
      * additional attributes for typo3-link plugin
      
      In addition, the integration code still contains various "@todo"
      remarks which should get resolved during further v12 development.
      
      CKEditor4 removal is put in a dedicated, separate patch.
      
      Used commands:
      
        composer req scssphp/scssphp:^1.11
        composer req scssphp/scssphp:^1.11 -d typo3/sysext/core --no-update
      
        cd Build/
      
        npm install \
            @ckeditor/ckeditor5-alignment \
            @ckeditor/ckeditor5-autoformat \
            @ckeditor/ckeditor5-basic-styles \
            @ckeditor/ckeditor5-block-quote \
            @ckeditor/ckeditor5-clipboard \
            @ckeditor/ckeditor5-code-block \
            @ckeditor/ckeditor5-core \
            @ckeditor/ckeditor5-dev-utils \
            @ckeditor/ckeditor5-editor-classic \
            @ckeditor/ckeditor5-engine \
            @ckeditor/ckeditor5-essentials \
            @ckeditor/ckeditor5-find-and-replace \
            @ckeditor/ckeditor5-heading \
            @ckeditor/ckeditor5-horizontal-line \
            @ckeditor/ckeditor5-html-support \
            @ckeditor/ckeditor5-indent \
            @ckeditor/ckeditor5-link \
            @ckeditor/ckeditor5-list \
            @ckeditor/ckeditor5-paragraph \
            @ckeditor/ckeditor5-paste-from-office \
            @ckeditor/ckeditor5-remove-format \
            @ckeditor/ckeditor5-source-editing \
            @ckeditor/ckeditor5-special-characters \
            @ckeditor/ckeditor5-style \
            @ckeditor/ckeditor5-table \
            @ckeditor/ckeditor5-theme-lark \
            @ckeditor/ckeditor5-ui \
            @ckeditor/ckeditor5-undo \
            @ckeditor/ckeditor5-utils \
            @ckeditor/ckeditor5-word-count
      
        npm install --save-dev \
            @types/ckeditor__ckeditor5-alignment \
            @types/ckeditor__ckeditor5-autoformat \
            @types/ckeditor__ckeditor5-basic-styles \
            @types/ckeditor__ckeditor5-block-quote \
            @types/ckeditor__ckeditor5-clipboard \
            @types/ckeditor__ckeditor5-code-block \
            @types/ckeditor__ckeditor5-core \
            @types/ckeditor__ckeditor5-editor-classic \
            @types/ckeditor__ckeditor5-engine \
            @types/ckeditor__ckeditor5-essentials \
            @types/ckeditor__ckeditor5-find-and-replace \
            @types/ckeditor__ckeditor5-heading \
            @types/ckeditor__ckeditor5-horizontal-line \
            @types/ckeditor__ckeditor5-html-support \
            @types/ckeditor__ckeditor5-indent \
            @types/ckeditor__ckeditor5-link \
            @types/ckeditor__ckeditor5-list \
            @types/ckeditor__ckeditor5-paste-from-office \
            @types/ckeditor__ckeditor5-remove-format \
            @types/ckeditor__ckeditor5-source-editing \
            @types/ckeditor__ckeditor5-special-characters \
            @types/ckeditor__ckeditor5-table \
            @types/ckeditor__ckeditor5-ui \
            @types/ckeditor__ckeditor5-undo \
            @types/ckeditor__ckeditor5-utils \
            @types/ckeditor__ckeditor5-word-count
      
        npm uninstall \
          ckeditor-wordcount-plugin \
          ckeditor4
      
      Resolves: #96874
      Releases: main
      Change-Id: I09134caacafe6dc084d9efc6f260047d7bf8b118
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75480
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
      Tested-by: default avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
      Reviewed-by: default avatarBenjamin Franzke <bfr@qbus.de>
      4c6d5fdf
    • Benni Mack's avatar
      [TASK] Enforce TYPO3 Composer Installers package v5 · 5c0f5753
      Benni Mack authored
      Composer-based installations will now have their
      extensions within composers' vendor folder
      instead of typo3/sysext/ and typo3conf/ext/.
      
      This way, all non-public files are moved outside
      the document root (ideally), while public files
      within extensions are symlinked to public/_assets/.
      
      TYPO3 will then resolve "EXT:" syntax depending
      on public / private folders to their respective
      locations.
      
      Used commands:
      - composer req "typo3/cms-composer-installers:^5.0"
      - composer req "typo3/cms-composer-installers:^5.0" --no-update -d typo3/sysext/core
      
      Resolves: #98484
      Releases: main
      Change-Id: Ia790e9e306ec142a0c581b801936d6b2c36e5c46
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75917
      
      
      Tested-by: default avatarBenjamin Franzke <bfr@qbus.de>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarOliver Bartsch <bo@cedev.de>
      Tested-by: default avatarBenni Mack <benni@typo3.org>
      Reviewed-by: default avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: default avatarOliver Hader <oliver.hader@typo3.org>
      Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: default avatarBenni Mack <benni@typo3.org>
      5c0f5753
  13. Sep 29, 2022
  14. Sep 28, 2022
  15. Sep 13, 2022
  16. Sep 02, 2022
  17. Aug 17, 2022
    • Benni Mack's avatar
      [!!!][FEATURE] Set Symfony 6.1 as minimum requirement · b9df005d
      Benni Mack authored
      This change raises the used Symfony Components
      to at least version Symfony 6.1.
      
      The requirement for "typo3/symfony-psr-event-dispatcher-adapter"
      is removed, as this was for support for allowing
      symfony4 AND symfony5 with the same TYPO3 major version.
      
      A few important highlights:
      * Symfony DI now only accepts objects or null to be
       returned by $container->get('myService')
      * Lots of typehints were added, this is mainly an issue
        if extensions extend Symfony classes
      * PHP 8.1+ requirements (which we already have in place for TYPO3 v12)
      
      See all features within Symfony 6.1:
      * https://symfony.com/blog/category/living-on-the-edge/6.1
      
      Symfony 6 is supported until November 2027 (once we
      upgrade to Symfony 6 LTS, which will happen in November 2023)
      unlike Symfony 5 LTS which has an EOL on November 2025.
      
      Used commands:
      
      > composer req composer/composer:^2.3.0 -W --dev
      > composer remove typo3/symfony-psr-event-dispatcher-adapter
      > composer remove --no-update -d typo3/sysext/core \
          typo3/symfony-psr-event-dispatcher-adapter
      > composer req --no-update -d typo3/sysext/adminpanel \
          symfony/var-dumper:^6.1
      > composer req --no-update -d typo3/sysext/core \
      	psr/container:^2.0 \
      	symfony/config:^6.1 \
      	symfony/console:^6.1 \
      	symfony/dependency-injection:^6.1 \
      	symfony/event-dispatcher-contracts:^3.1 \
      	symfony/expression-language:^6.1 \
      	symfony/filesystem:^6.1 \
      	symfony/finder:^6.1 \
      	symfony/http-foundation:^6.1 \
      	symfony/mailer:^6.1 \
      	symfony/mime:^6.1 \
      	symfony/options-resolver:^6.1 \
      	symfony/rate-limiter:^6.1 \
      	symfony/routing:^6.1 \
      	symfony/yaml:^6.1
      > composer req --no-update -d typo3/sysext/extbase \
      	symfony/dependency-injection:^6.1 \
      	symfony/property-access:^6.1 \
      	symfony/property-info:^6.1
      > composer req --no-update -d typo3/sysext/fluid \
      	symfony/dependency-injection:^6.1
      > composer req --no-update -d typo3/sysext/form \
      	symfony/expression-language:^6.1
      > composer req --no-update -d typo3/sysext/install \
      	symfony/finder:^6.1 \
      	symfony/http-foundation:^6.1
      > composer req --no-update -d typo3/sysext/redirects \
          symfony/console:^6.1
      > composer req -W \
      	psr/container:^2.0 \
      	symfony/config:^6.1 \
      	symfony/console:^6.1 \
      	symfony/dependency-injection:^6.1 \
      	symfony/event-dispatcher-contracts:^3.1 \
      	symfony/expression-language:^6.1 \
      	symfony/filesystem:^6.1 \
      	symfony/finder:^6.1 \
      	symfony/http-foundation:^6.1 \
      	symfony/mailer:^6.1 \
      	symfony/mime:^6.1 \
      	symfony/options-resolver:^6.1 \
      	symfony/property-access:^6.1 \
      	symfony/property-info:^6.1 \
      	symfony/rate-limiter:^6.1 \
      	symfony/routing:^6.1 \
      	symfony/var-dumper:^6.1 \
      	symfony/yaml:^6.1
      
      Resolves: #98158
      Releases: main
      Change-Id: Ibfa656fb499003405d1c2cb49570e735698b6a6b
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75427
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      b9df005d
  18. Aug 09, 2022
  19. Aug 01, 2022
  20. Jul 31, 2022
  21. Jul 28, 2022
  22. Jul 26, 2022
  23. Jul 19, 2022
  24. Jul 16, 2022
  25. Jul 09, 2022
  26. Jul 01, 2022
  27. Jun 22, 2022
  28. Jun 19, 2022