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 10, 2022
  10. Oct 07, 2022
  11. Oct 06, 2022
  12. Oct 05, 2022
  13. Oct 04, 2022
  14. Oct 03, 2022
  15. Oct 02, 2022
    • Oliver Bartsch's avatar
      [!!!][FEATURE] Introduce TCA type "file" · a7dd0225
      Oliver Bartsch authored
      In the process of using dedicated TCA types,
      the new TCA type "file" is introduced and
      replaces TCA type "inline" with "foreign_table"
      set to "sys_file_reference".
      
      The new type allows to remove a lot of cross
      dependencies and special cases for type "inline",
      in case the field is used in FAL context. Also
      DataHandler and friends benefit from this change,
      since dedicated functionality can be used now.
      
      It therefore effectively allows to improve FAL
      independently in the future.
      
      Due to the nature of "inline" a lot of code had
      to be copied for the new type, while changing the
      internal naming was not always easily possible.
      This will be done step by step with further patches.
      
      Besides the new TCA type also three new PSR-14 Events
      are introduced:
      
      - CustomFileControlsEvent
      - ModifyFileReferenceControlsEvent
      - ModifyFileReferenceEnabledControlsEvent
      
      While the ModifyFileReferenceControlsEvent and
      ModifyFileReferenceEnabledControlsEvent are equal
      to their inline counterparts does the CustomFileControlsEvent
      replace the "customControls" hook option, which is
      therefore only available for type "inline".
      
      Further notable changed:
      
      - Superfluous field "table_local" is removed from "sys_file_reference"
      - ExtensionManagementUtility::getFileFieldTCAConfig() is deprecated
      - Placeholders are introduced for common image/media/file types
      - File extension filtering is now done automatically in FormEngine
        and DataHandler
      
      Executed commands:
      
          composer u typo3/cms-styleguide
      
      Resolves: #98479
      Releases: main
      Change-Id: Ie7a14e8cef444816d3c1844df43e6c0c93706d5d
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75916
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarJochen <rothjochen@gmail.com>
      Tested-by: default avatarBenni Mack <benni@typo3.org>
      Reviewed-by: default avatarJochen <rothjochen@gmail.com>
      Reviewed-by: default avatarBenni Mack <benni@typo3.org>
      a7dd0225
  16. 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
  17. Sep 29, 2022
  18. Sep 28, 2022
  19. Sep 16, 2022
  20. Sep 13, 2022
  21. Sep 02, 2022
  22. 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
  23. Aug 09, 2022
  24. Aug 08, 2022
  25. Aug 07, 2022
  26. Aug 01, 2022
  27. Jul 31, 2022
    • Stefan Bürk's avatar
      [TASK] Upgrade to codeception/codeception 5.x · 816476c2
      Stefan Bürk authored
      Codeception released new major version 5, which
      unblocks upgrading to symfony 6 components.
      This patch raises codeception only, thus acting as a
      pre-patch to raise symfony requirements.
      
      Codeception 5 is hard to impossible with core v11,
      so this patch is v12 only: Codeception 5 requires
      PHP 8.0, so we'd have to support both 4 and 5 in
      v11 to allow testing with older PHP versions. This
      would result in various headaches since some API
      changes in codeception 5 are hard breaking in PHP,
      especially due to changed class property type hints.
      We'll thus keep codeception 4 in v11 and go with
      codeception 5 in v12.
      
      Minor acceptance test related adaptions are needed:
      
      * Replaced config option `path.log` with `path.output`
      * Added proper property type because of inheritance to
        codeception setup classes
      * Ensure method return type compatibility
      * Use `actor`instead of `class name` in suite config
      * Create acceptance split files in proper folder to
        ensure group filtering keeps working. Adjust clean
        up scripts and gitignore for this
      
      Used commands:
      
      > composer req --dev -w \
        typo3/testing-framework:dev-main \
        codeception/codeception:^5.0.0 \
        codeception/module-asserts:^3.0.0 \
        codeception/module-cli:^2.0.0 \
        codeception/module-filesystem:^3.0.0 \
        codeception/module-webdriver:^3.1.2 \
        codeception/lib-asserts:^2.0.0
      
      Resolves: #98047
      Releases: main
      Change-Id: I5cea60c2641988cc032b30ed1fbe3d8b0ed3b3d1
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75317
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarOliver Klee <typo3-coding@oliverklee.de>
      Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      816476c2
  28. Jul 28, 2022
  29. Jul 26, 2022
  30. Jul 19, 2022
  31. Jul 16, 2022