TYPO3 Release 13.4.19
In der Reihe TYPO3 Release-Notizen beleuchten wir regelmäßig die wichtigsten Bug-Fixes/Security-Issues oder wichtigen Änderungen in einem neuen Patchlevel-Release. Diese Releases sind gemäß Roadmap bereits terminiert und erscheinen grob einmal im Monat.
Bugs haben je nach Projekt unterschiedliche Auswirkungen. Was in einem Projekt kritisch ist, kann in einem anderen kaum eine Rolle spielen. Unsere Gewichtung ist daher subjektiv und soll die Relevanz anderer Fixes nicht herabspielen.
Aktueller Release
Das aktuelle Release ist ein Maintenance-Release.
Durch ein potentielles Symfony-Update in Composer-Instanzen konnte eine Fehlermeldung mit "Cannot generate lazy proxy" erscheinen, die nun vermieden wird.
Ein Update auf Doctrine/dbal 4.3.3 sorgt für eine spürbare Performance-Verbesserung (im Backend), neben weiteren Verbesserungen im SchemaInformation-Caching.
Die "Zurück"-Funktion für einige Backend-Links (z.B. der Modulwechsel mittels returnUrl) funktioniert nun wieder.
Im EXT:form Modul wurde ein Bug gefixt, so dass die Flexformkonfiguration für E-Mail-Adressen per Platzhalter wieder möglich ist.
Der MIME-Typ-Integritätscheck bei Datei-Uploads in Extbase sowie erlaubte Dateitypen im Backend wurden verbessert.
Insgesamt gab es 95 Änderungen.
Regression-Bugfixes
TCA / Schema API / Record API
- Bei Benutzung einer statischen TCA Select-Liste mit Relationen wurde dies nicht als Relation erkannt wenn nur "maxitems" konfiguriert war (und kein "relationship").
- Bessere Auswertung der "rootlevel=-1" Definitionen bei "Exclude"-Feldern im TCA/FormEngine.
- WissenswertDie Content-Element-Registrierung kann Icons bei "Select"-Dropdowns nun auch aus der TCA Definition korrekt auslesen und erfordert nicht mehr zwingend TSConfig ("mod.wizards.newContentElement.wizardItems..."). Hierdurch können Redundanzen vermieden werden.
- Die Nutzung von "IconOverlay" Attributen im Wizard für neue Content-Elemente ist nun wieder möglich.
Site Settings / Site Sets
EXT:form
- Bei Nutzung einer gewissen Konstellation von übersetzten Eingabefeldern und deren Auswahlwerten konnte eine PHP Typfehlermeldung geworfen werden.
- WissenswertDas Eingabefeld zum Überschreiben von Empfänger/Absender-Feldern über die Flexformkonfiguration des EXT:form Plugins erlaubte nur die Eingabe von E-Mail-Adressen statt auch gültiger "{xxx}"-Feldverweise. Dies ist nun wieder möglich.
- Vermeidung einer unnötigen Meldung "Das Formular enthält ungespeicherte Änderungen", wenn dies faktisch nicht der Fall ist.
- In gewissen Browsern war Copy+Paste in einigen Eingabefeldern des EXT:Form-Backends nicht möglich.
- Felder mit Fehlermeldungen in der Backend-Formular-GUI werden korrekt als Fehler formatiert, auch wenn neue Elemente hinzugefügt werden.
Fluid
Content Security Policy (CSP)
- Erweiterung der CSP-API für einige interne Methoden, um den Abgleich von SourceKeyword/Directive auf Gruppierungsebene zu vereinfachen
- Der Nonce-Counter wird intern nicht mehr erhöht, wenn kein Nonce konsumiert wurde
Backend: UI
- Hintergrundfarben einiger Elemente in der Live-Suche leicht angepasst für einheitliche "Tiefen".
- FormEngine Validierung nutzt aria-invalid Attribute für bessere Accessibility.
- Die (nicht mögliche) Bearbeitung von readonly Feldern im Listenmodul bei Datensätzen wird nun versteckt.
- Der Wizard für die Erstellung neuer Inhaltselemente ist nun per Tastatur-Cursor-Navigation besser zu bedienen, und kann zwischen Navigations- und Inhaltsbereich leichter wechseln.
- Die Bedienung der neuen "map/element-list" System-Konfigurationsoptionen wurde verbessert, fehlende "Beschreibung" z.B. bei "lockRootPaths" wird wieder angezeigt.
- Die "Alle ein/ausblenden"-Option der Sektionen im Install Tool funktioniert wieder korrekt.
- Der Tab-Titel von eigenen Linkbrowser-Elementen wird nicht mehr doppelt kodiert, so dass dort gewisse Sonderzeichen in Namen korrekt angezeigt werden.
- Vermeidung von CSS-Pseudo-Klassen für "disabled/readonly" zugunsten von echten Selektoren
- Bugfix für ungültiges HTML-Tag der "typo3-formengine-valueslider" Komponente
- Die Lit-Komponente "typo3-backend-icon" belegt nun immer bereits die finale Größe, um ein Flackern im Nachladen von Icon-Platzhaltern zu verhindern
- FormEngine Panels können nun Lade-Animationen/Balken nutzen, wenn Inhalt nachgeladen wird
Backend: API
- Sehr wichtigKompatibilität für Symfony/Dependency-Injection bei PHP 8.2; das neue Release erzeugt ansonsten eine Fehlermeldung 'Symfony\Component\DependencyInjection\Exception\InvalidArgumentException: Cannot generate lazy proxy for service ".lazy.TYPO3\CMS\Form\Mvc\Configuration\ConfigurationManagerInterface.uYP00Ui"'.
- WissenswertDie Liste von erlaubten "Text"-Feldern ("textfile_ext", "miscfile_ext") wurde ergänzt für typische Dateinamen, um Upload im Backend zu ermöglichen.
- WissenswertBeim Upload von Dateien im Extbase und EXT:form Kontext wird der "MIME-Type Integrity Check" nun so ausgeführt, dass die jeweilige Anwendung die "Hoheit" über die Fehlerausgabe (anstelle von Exceptions) besitzen kann.
- WissenswertDie JavaScript-Einbindung im Backend erzeugt nun keinen ungültigen Login mehr bei langsamen Netzwerkverbindungen und Race-Conditions in der Ausführung.
- Der Zugriffscheck für die Vorschau im Backend von versteckten/geplanten Datensätzen wurde korrigiert um alle erlaubten Elemente korrekt auszuliefern (RecordAccessVoter).
- Sehr wichtigIn Nicht-Composer Instanzen konnte in gewissen Fällen (abhängig von Symlinks) der Pfadname zu Assets (vor allem in typo3temp) falsch berechnet werden. Dies wurde nun vereinheitlicht.
- WissenswertUpdate auf doctrine/dbal 4.3.3, vor allem für eine wichtige und spürbare Performance-Verbesserung beim Parsing der SQL-Abfragen
- Der "SelectMultipleSideBySide"-Suchwizard kann reguläre Ausdrücke nun korrekt mit Sonderzeichen escapen (JavaScript)
- WissenswertDer Symfony-DI-Cache wird nun gezielt für die eingesetzte PHP-Version erzeugt; Cache-Warmup funktioniert via CLI somit nun nur noch korrekt wenn die Web-PHP-Version identisch ist.
- Sehr wichtigAuch für lokalisierte Seiten werden nun entsprechende Cache-Tags (pages_X, pageId_X) wieder korrekt gesetzt, was seit dem "Ausbau" von "pages_language_overlay" verloren ging.
- Die API von "PageViewContentObject" ist nun nicht mehr "@internal"
- WissenswertDie API von "TYPO3\CMS\Core\Type\Map" kann nun auch mit Skalaren/Objekten in Array-Keys korrekt umgehen, und nutzt nun intern kein SplObjectStorage mehr. Für Konsumenten der API sollte dies keine (negative) Auswirkung haben.
- Der "zufällige Unterseite" für den Shortcut-Seitentyp in der Nutzung des "AbstractMenuContentObject" wird nun korrekt ausgewertet und nicht versehentlich als Parameter für die Rechte-Auswertung genutzt. (Hinweis: In TYPO3v14 wird "zufällige Unterseite" als Option entfernt und sollte nicht mehr genutzt werden)
- WissenswertNutzung der Datenbank-Schema-Auslesung erfolgt nun mit mehr Caching-Zugriff und wird performanter
- WissenswertDie Datenbank-Schema-Auslesung kann nun einen weiteren Second-Level-Cache für bessere Performance nutzen
- Optimierung der SchemaInformation API (intern) für Meta-Informationen der Datenbanktabellen
- Die Methode "isWritable" von "TYPO3\CMS\Core\Http\Stream" kann nun den "ist schreibbar"-Kontext auch für spezielle Stream-Typen korrekt auswerten
- Das HTML-Attribut "aria-expanded" nutzt nun einen korrekten true/false Wert statt 1/0 im Backend-Seitenbaum
- Das CLI-Kommando "backend:lock" kann nun auch den aktuellen Locking-Zustand auswerten und per Exit-Code darauf reagieren
PHP-Typfehler
- Vermeidung eines Typ-Fehlers beim Aufrufen von Site Settings, wenn noch keine Root-Seite definiert wurde.
- Die FAL Methode "getFileReferenceData" enthält nun einen korrekten Rückgabewert-Typen, um im Fall einer fehlenden Dateizuordnung korrekte Fehlermeldungen ausgeben zu können (statt Exception)
- Vermeidung eines Typ-Fehlers für Zahlenwerte beim Rendering der Backend-Inhaltsvorschau.
- Vermeidung eines Typ-Fehlers beim Speichern eines Backenduser-Profils ohne "realName"
- Vermeidung von "$array[null]" Zugriff zugunsten von "$array['']" für PHP 8.5 Kompatibilität
Backend: CKEditor
- Update auf CKEditor 5 46.1.1, Vereinheitlichung der "CKEditor 5" Namensnutzung
- Update auf CKEditor 5 47.0.0 (LTS)
