Changelog
Unreleased
- Fixed: processed image requests no longer return
HTTP 400 when
fileadmin(or any other Local FAL storage) is a symlink to an external location such as an NFS/EFS mount.isPathWithinAllowedRootsnow accepts any realpath-resolved path that lies within the TYPO3 public root or the realpath of any configured Local storage'sbasePath. Symlinks placed inside a storage that escape every allowed root -- e.g.fileadmin/->evil /etc-- continue to be rejected. Reported in issue #70. - Hardened: paths containing NUL bytes are rejected outright, closing a minor realpath-bypass via the not-yet-existing-path parent-walk branch.
- Changed (BC for subclasses and manual instantiators):
Netresearch\\gains a new requiredNr Image Optimize\\ Processor StorageRepositoryconstructor parameter. Consumers that autowire the service (the default in TYPO3 12+) are unaffected; any code that extends the class or constructs it by hand must forward the new dependency. - Added
OptimizeOnUploadListener-- PSR-14 listener that runsoptipng/gifsicle/jpegoptimonAfterFileAddedEventandAfterFileReplacedEvent. Keyed bystorageUid . ':' . identifierto avoid cross-storage re-entrancy collisions; restoressetEvaluatePermissionsin afinallyblock. - Added
nr:image:optimize-- bulk optimization command with--dry-run,--storages,--jpeg-quality, and--strip-metadataoptions. Uses a streaming Generator oversys_fileso large installations don't load the full index into memory. - Added
nr:image:analyze-- heuristic analysis command that estimates optimization potential without invoking any binary. Fast even on large installations. - Added
ImageOptimizerservice -- shared backend used by the listener and both CLI commands. Env overrides (OPTIPNG_BIN,GIFSICLE_BIN,JPEGOPTIM_BIN) are authoritative: a set-but-invalid override is reported as unavailable rather than silently falling back to$PATH.$PATHlookups also verifyis_executable().
2.2.1
- Adjusted author information in
ext_.emconf. php
2.2.0
- Fixed: always render
altattribute on generated<img>tags. - Expanded unit test coverage for Processor and SourceSetViewHelper.
2.1.0
New in version 2.1.0
Width-based responsive srcset with sizes
attribute, configurable width variants, and
fetchpriority support.
- Added responsive width-based
srcsetgeneration as opt-in feature. - Added
widthVariantsparameter for custom breakpoints. - Added
sizesparameter for responsive image sizing. - Added
fetchpriorityattribute for resource hints. - Optimized default
sizesattribute values.
2.0.1
- Fixed
declarestatement issue preventing TER publishing via GitHub Actions.
2.0.0
New in version 2.0.0
TYPO3 13 compatibility with PHP 8.2--8.4 support.
- Added TYPO3 13 compatibility.
- Added PHP 8.2, 8.3, and 8.4 support.
- Dropped support for older TYPO3 versions.
- Switched to Intervention Image 3.x.
- Removed obsolete system binary checks.
1.0.1
- Added
ext_for classic installation.emconf. php
1.0.0
- Initial stable release.
- GitHub Actions CI workflows.
0.1.5
- Fixed
strtolower()null argument error. - Fixed array offset access on boolean value.
- Allowed numeric characters in file extensions.
- Added extension icon.
- Corrected crop variant examples.
- Improved lazy loading behavior.