netresearch / rte-ckeditor-image
Image support in CKEditor for the TYPO3 ecosystem
Installs: 900 075
Dependents: 5
Suggesters: 1
Security: 0
Stars: 58
Watchers: 12
Forks: 66
Open Issues: 37
Type:typo3-cms-extension
pkg:composer/netresearch/rte-ckeditor-image
Requires
- ext-dom: *
- ext-libxml: *
- typo3/cms-backend: ^13.4
- typo3/cms-core: ^13.4
- typo3/cms-extbase: ^13.4
- typo3/cms-frontend: ^13.4
- typo3/cms-rte-ckeditor: ^13.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.61
- phpstan/phpstan: ^2.0
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- squizlabs/php_codesniffer: ^3.7
- typo3/testing-framework: ^9.0
- dev-main / 13.0.x-dev
- 13.0.0
- dev-TYPO3_12 / 12.0.x-dev
- v12.0.4
- 12.0.2
- v12.0.1
- 12.0.0
- dev-TYPO3_11 / 11.0.x-dev
- 11.0.16
- v11.0.15
- 11.0.14
- v11.0.13
- v11.0.12
- 11.0.11
- 11.0.10
- v11.0.9
- v11.0.8
- 11.0.7
- v11.0.6
- v11.0.5
- v11.0.4
- v11.0.2
- v11.0.1
- v11.0.0
- dev-TYPO3_10 / 10.x-dev
- v10.2.5
- v10.2.4
- v10.2.1
- v10.2.0
- v10.1.0
- v10.0.0
- v9.0.5
- v9.0.4
- v9.0.3
- v9.0.2
- v9.0.1
- v9.0.0
- v8.9.0
- v8.8.0
- v8.7.8
- v8.7.7
- v8.7.6
- v8.7.5
- v8.7.4
- v8.7.3
- v8.7.2
- v8.7.1
- dev-docs/enhance-cards-with-stretch-links-and-icons
- dev-docs/fix-card-grid-syntax-and-cross-references
- dev-fix/documentation-table-rst-syntax
- dev-fix/documentation-add-missing-index-files
- dev-fix/documentation-rst-syntax-complete
- dev-fix/documentation-cross-references
- dev-feature/documentation-restructure-rst
- dev-feature/upstream-from-typo3_12-width-height-bugfix
- dev-feature/upstream-from-typo3_11-static-template-warning
- dev-upstream/typo3-10-to-11-style-attribute
- dev-codex/add--upgrade-from-v11--section-to-readme
- dev-docs/refresh-readme-documentation
- dev-renovate/major-commitlint-monorepo
- dev-renovate/lint-staged-16.x
- dev-feature/add-official-typo3-documentation
- dev-feature/tighten-code-quality-checks
- dev-security/critical-vulnerability-fixes
- dev-feature/ci-devtools-modernization
- dev-bugfix/read-tsconfig-settings
- dev-bugfix/soft-reference-test-failure
- dev-renovate/github-codeql-action-4.x
- dev-renovate/actions-checkout-5.x
- dev-task/rector-modernizations-phpcs-fixer-update
- dev-NEXT-85-13
- dev-NEXT-85-12
- dev-fix/NEXT-89-svg-dimensions-v13
- dev-codex/add-backend-check-for-ckeditor-image-support
- dev-NEXT-85
- dev-codex/implement-upgradewizard-to-update-img-src
- dev-upgrade_testsuite_tea
- dev-sme_wip
- dev-readme
- dev-GH-167
- dev-DMKEBUSINESSGMBH-master
- dev-christian-fries-bugfix/235-dynamic-property
- dev-issue-214
This package is auto-updated.
Last update: 2025-10-17 23:36:13 UTC
README
Image support for CKEditor for TYPO3
Version 13.0.x for TYPO3 13.4+ License: AGPL-3.0-or-later
This extension adds comprehensive image handling capabilities to CKEditor for TYPO3.
Add issues or explore the project on GitHub.
Features
- TYPO3 FAL Integration: Native file browser with full File Abstraction Layer support
- Magic Images: Same image processing as rtehtmlarea (cropping, scaling, TSConfig supported)
- Image Dialog: Configure width, height, alt, and title (aspect ratio automatically maintained)
- Custom Styles: Configurable image styles with CKEditor 5 style system
- Lazy Loading: TYPO3 native browser lazyload support
- Event-Driven: PSR-14 events for extensibility
Requirements
- TYPO3: 13.4 or later
- PHP: 8.2, 8.3, or 8.4
- Extensions: cms-rte-ckeditor (included in TYPO3 core)
Critical Dependencies (v13.0.0+)
The CKEditor plugin requires these dependencies for style functionality:
# In your RTE YAML configuration importModules: - '@ckeditor/ckeditor5-html-support'
Important: Missing GeneralHtmlSupport
will disable the style dropdown for images. See Documentation for details.
Installation
-
Install the extension
-
with composer from packagist
composer req netresearch/rte-ckeditor-image
-
-
Add a preset for rte_ckeditor or override the default one (as below):
<?php // EXT:my_ext/ext_localconf.php` $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:my_ext/Configuration/RTE/Default.yaml';
# EXT:my_ext/Configuration/RTE/Default.yaml imports: # Import default RTE config (for example) - { resource: "EXT:rte_ckeditor/Configuration/RTE/Default.yaml" } # Import the image plugin configuration - { resource: "EXT:rte_ckeditor_image/Configuration/RTE/Plugin.yaml" } editor: config: toolbar: items: - heading - '|' - typo3image - link - '|' - bold - italic
-
Enable RTE config preset (e.g.
default
)# Page TSConfig RTE.default.preset = default
-
Include extension Static Template file
- go to Template » Info/Modify » Edit whole template record » Includes
- choose
CKEditor Image Support
forInclude static (from extensions)
before the Fluid Styled content
Configuration
(optional) Configure the Extension Configuration for this extension:
fetchExternalImages: By default, if an img source is an external URL, this image will be fetched and uploaded to the current BE users uploads folder. The default behaviour can be turned off with this option.
Maximum width/height
The maximum dimensions relate to the configuration for magic images which have to be set in Page TSConfig:
# Page TSConfig
RTE.default.buttons.image.options.magic {
# Default: 300
maxWidth = 1020
# Default: 1000
maxHeight = 800
}
Current versions of TYPO3 won't render TSConfig settings correctly out of custom template extensions (see the corresponding T3 bug: https://forge.typo3.org/issues/87068). In this case just add the settings to root page config.
Usage as lightbox with fluid_styled_content
# Template Constants
styles.content.textmedia.linkWrap.lightboxEnabled = 1
Configure a default css class for every image
# TS Setup
lib.parseFunc_RTE {
// default class for images in bodytext:
nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib.class {
default = my-custom-class
}
}
Image lazyload support
The extension supports TYPO3 lazyload handling (fluid_styled_content) for native browser lazyload.
# Template Constants type=options[lazy,eager,auto]
styles.content.image.lazyLoading = lazy
Allowed extensions
By default, the extensions from $TYPO3_CONF_VARS['GFX']['imagefile_ext']
are allowed. However, you can override this for CKEditor by adding the following to your YAML configuration:
editor: externalPlugins: typo3image: allowedExtensions: "jpg,jpeg,png"
Documentation
For comprehensive documentation, see Documentation/Index.md:
- Integrators: Configuration Guide | Examples | Troubleshooting
- PHP Developers: Architecture Overview | API Reference | AGENTS.md
- JS Developers: CKEditor Plugin | Style Integration | Resources/AGENTS.md
- Contributors: CONTRIBUTING.md | AGENTS.md | Tests/AGENTS.md
Development
# Quick start composer install make help # See all available targets # Development workflow make lint # Run all linters make format # Fix code style make test # Run tests make ci # Full CI check (pre-commit)
See AGENTS.md for complete development guide, code standards, and PR checklist.
Deployment
- Developed on GitHub
- Composer repository
- TYPO3 Extension Repository
- New versions automatically uploaded to TER via GitHub Action when creating a release