TYPO3 14.2 - Neue Funktionen und Features

Spürbare Verbesserungen im Bereich Content-Erstellung und neue Schnittstellen oder Funktionen.

Dieser Bereich ist sicher für alle der Spannendste, denn hier geht es um die wirklich spürbaren Fortschritte bei TYPO3.

In diesem Bereich zeigen wir auch einige Screenshots zur Auflockerung.

Backend-UI mit neuen FormEngine Tabs und Context Panel

Ein mehrschrittiger "Neue Seite erstellen" Wizard

EXT:form Datumsvalidierung

Synchroner Bildbeschnitt ("Crop")

Neues Modul "Content Report"

Neue Funktionen und Schnittstellen

GoodieDie Registrierung von "allowedRecordTypes" erfolgt nun nicht mehr in PageDoktypeRegistry sondern kann direkt im TCA vorgenommen werden.

Zielgruppe: Integration

GoodieAuslagerung von FormEngine Hilfsmethoden zum Rendering (vor allem für Preview-Funktionen) in eigenständige Services.

Zielgruppe: Entwicklung

GoodieMit einer neuen TCA-Option "isPreviewable" können Seitentypen nun einfacher so konfiguriert werden, ob sie in einer Vorschau angezeigt werden. .

Zielgruppe: Integration

Dies behebt bisherige Sonderlösungen, wo z.B. "Trenner" und "SysFolder" von Vorschaufunktionen ausgeschlossen wurde. Dies kann nun auch für eigene Seitentypen genutzt werden.

Neues Hilfsmethoden im "LocalizationRepository" um Übersetzungsfunktionalitäten auszulesen und TCA Schema API anzuwenden.

Zielgruppe: Entwicklung

GoodieDie Standard-Aktionen für die Suchergebnisse in der Live-Suche können nun per User TSConfig Option bestimmt werden (Vorschau/Seite/Datensatz).

Zielgruppe: Integration

Die persönlichen Einstellungen von Backend-Nutzern "(UserSettings) - 'uc' " können nun mit vollständiger TCA-Definition genutzt werden, nicht mehr wie Pseudo-TCA wie bisher. Das Papierkorb-Modul greift nun intern anders auf User-Settings zu.

Zielgruppe: Entwicklung

Das Redis Session Backend unterstützt nun wie das Redis Cache Backend auch die Möglichkeit, username+password der Authentifikation getrennt zu konfigurieren.

Zielgruppe: Integration

WissenswertEinführung einer neuen JavaScript Label API (Ersatz von lll() durch eine getLabel() Methode, Zugriff auf XLIFF-Sprachdateien), die auch mit ICU Pluralformen umgehen kann und im JavaScript-Module-Loading-Kontext evaluiert werden kann.

Zielgruppe: Integration

GoodieDie RateLimiterFactory wurde als API-Methode eingefügt um Zugriffsmengenbeschränkungen für Aktionen wie Logins und Extbase-Actions einfach setzen zu können. Dies erfolgt mittels PHP Attributes. Hiermit kann dann gesteuert werden, dass z.B. bei Datensatz-Erstellungs-Actions in Extbase ein Nutzer zum Schutz nur begrenzt viele Aufrufe starten kann. RateLimit+Authorisation Extbase-Attribute werden nun compile-time ausgewertet, nicht runtime (via reflection).

Zielgruppe: Entwicklung

Die settings.definitions.yaml Site Set Konfigurationsdatei kann nun auch Konfigurationselemente vom Typ "enum" mit Sprachlabels definieren.

Zielgruppe: Integration

GoodieEs gibt nun ein "Kurz-URL" Modul, mit dem zusätzliche Short-URLs für Seiten erstellt werden können. Wer mir den Unterschied von "Redirects" und "Short-URLs" erklärt, bekommt Bonuspunkte.

Zielgruppe: Redaktion

Ein neuer PSR-14 Event "BeforeBackendPageRenderEvent" ermöglicht das Einhaken in die Darstellung aller Backend-Modulseiten (z.B. zum Einfügen von JavaScript/Assets).

Zielgruppe: Entwicklung

Ein neuer PSR-14 Event "AfterRecordListRowPreparedEvent" wurde eingefügt, mit dem die Backend-Datensatzliste von Extensions angepasst werden kann.

Zielgruppe: Entwicklung

Ein neuer PSR-14 Event "BeforePersistingReportEvent" wurde eingefügt, so dass CSP Reports vor der Speicherung angepasst werden können, oder die Speicherung auch ganz übergangen werden kann.

Zielgruppe: Entwicklung

Ein neuer PSR-14 Event "IsReferenceConsideredForDependencyEvent" sorgt nun dafür dass bei der Workspace-Verarbeitung für die Referenz-Index-Analyse Modifikationen durchgeführt werden können.

Zielgruppe: Entwicklung

GoodieDie Exception-Debugging-Ausgabe besitzt nun die Möglichkeit, einen Stacktrace direkt als Textversion in die Zwischenablage zu kopieren, den Stacktrace kompakter darzustellen, und einzelne Dateinamen direkt in die Zwischenablage zu kopieren.

Zielgruppe: Entwicklung

GoodieEin neuer Passwort-Generator für die FormEngine-Passwortvergabe für BE/FE-User wurde eingeführt. Dieser kann auch im CLI "backend:user:create" Kontext angesprochen werden.

Zielgruppe: Integration

GoodieFür QueryBuilder-Objekte wurde eine generische "Blätterfunktion" namens QueryBuilderPaginator eingefügt. Mittels CTE-Nutzung können hier Ausschnitte einer SQL-Abfrage einfach geblättert werden.

Zielgruppe: Entwicklung

Das AutoTagging von Bilderassets kann nun genutzt werden um beim Löschen/Bearbeiten von Dateien die zugehörigen auto-getaggten Caches automatisch zu leeren.

Zielgruppe: Entwicklung

TSConfig kann nun auch für be_users und be_groups direkt als file includes definiert werden, wie für pages.

Zielgruppe: Integration

Die userFunc für das Slug Element erhält nun mehr Kontext, um TCA-Konfiguration des zugehörigen Feldes auswerten zu können und darauf reagieren.

Zielgruppe: Integration

Sehr wichtigDie System Resource API erhält nun eine Unter-API für "Publishing" von Inhalten.

Zielgruppe: Integration

Das Bereitstellen von Dateien im Ordner _assets/ kann nun beeinflusst werden. Ausser SymlLinks ist nun auch das Kopieren von Dateien möglich. Und eigene Publisher können benutzt werden um z.B. Assets auf CDNs hochzuladen und deren URI dann beim Einsatz einer Resource einzubetten. Das interne virtuelle Paket "typo3/app" wurde hierzu noch weiter verfeinert. Die "public" Ordner beim Publishing können nun auch konfiguriert werden.

Sehr wichtigDas "FluidEmail" Objekt kann nun durch eine PHP-Factory erzeugt werden, und dort die Template-Dateien gezielter übermitteln. Ein neues "typo3/email" Site Set erlaubt ebenfalls, für alle Extensions die Fluid Email nutzen eigenständige Templates zu definieren.

Zielgruppe: Integration

So können zum Beispiel EXT:form Mails oder felogin Mails abhängig von der Site eigenständige Templates nutzen. Auch im CLI-Kontext kann eine Fluid-Mail nun einfach instanziert werden!

GoodieNeuer PSR-14 Event CustomFileSelectors um in der Datei-Liste durch Extensions weitere Aktionslinks oder Asset-Einbindungen generieren zu können.

Zielgruppe: Integration

WissenswertDie Datei "ext_emconf.php" ist nicht mehr erforderlich auch in Classic-Mode Instanzen. Alles wird per composer.json geregelt.

Zielgruppe: Entwicklung

GoodieDer TypoLinkBuilder kann nun queryParams als Array (statt urlencodeten String) auswerten.

Zielgruppe: Entwicklung

GoodieBackend-Module können nun mit einem PHP-Attribut feinere Rechte-Steuerung ("Gates") für das Modul-Routing festlegen.

Zielgruppe: Entwicklung

WissenswertDie ContentSecurityPolicy (CSP) kann nun für Ressourcen das "integrity"-Attribut mit Hashing berechnen (SRI) und somit Nonces vermeiden, die beim Caching immer problematisch waren. Diese Hashes werden nun auch bevorzugt genutzt.

Zielgruppe: Integration

Neuer PSR-14 Event ModifyLocalizationHandlerIsAvailableEvent um für den Localization-Wizard (Übersetzungen von Seiten/Inhalten) etwaige Wizard-Varianten zu überspringen.

Zielgruppe: Integration

Neuer PSR-14 Event RedirectIntegrityCheckEvent mit der beim Check von Redirects Extensions Anpassungen durchführen können.

Zielgruppe: Integration

Sehr wichtigIm Seitenbaum und in der Live-Suche können redaktionell nun Seiten anhand der Frontend-URI gefunden werden. Somit muss man nicht über eine Slug-Suche ausweichen oder Seiten gar anhand des Seitenbaums identifizieren müssen. Es werden auch übersetzte Seiten gefunden.

Zielgruppe: Redaktion

WissenswertUnterschiedliche Record-Typen (z.B. "doktype" bei Seiten, oder "CType" bei Inhalten) können nun typ-abhängig Labels für die Datensatz-Darstellung im TCA definieren.

Zielgruppe: Integration

GoodieIm Seitenlayout / Datensatzliste / Workspace-Modul wird nun ein QR-Code-Button neben der Vorschaufunktion dargestellt, so dass die Frontend-URL direkt als QR-Code gescannt und weitergeteilt werden kann.

Zielgruppe: Redaktion

GoodieModernisierte Bookmark-Verwaltung im Backend (mit AJAX-Routen und besserer interner Aufteilung).

Zielgruppe: Redaktion

GoodieDie Reihenfolge der Elemente im "Neuer Seiteninhalt"-Wizard kann nun wie bekannt mit before/after mit Page TSConfig festgelegt werden. Bisher ging das nur für die Reihenfolge der Tabs, nicht der Inhaltselemente selbst.

Zielgruppe: Integration

GoodieIm Layout-Modul werden die "slide Modes" nun mit einem Icon repräsentiert.

Zielgruppe: Redaktion

GoodieEin neues Konfigurationsmodul kann alle Extbase-Persistenzeinstellungen anzeigen.

Zielgruppe: Integration

Sehr wichtigEinfügung eines neuen Overlays (Modal "Context Panel"), mit dem Seiteneigenschaften und Datensätze auf einer Seite in der Layout-Ansicht sofort bearbeitet und gespeichert werden können, ohne eine FormEngine-Vollansicht mit eigenem Seitenaufruf zu benötigen.

Zielgruppe: Redaktion

Dieses Overlay kann künftig auch an anderen Stellen genutzt werden. Hierbei fand auch Harmonisierung am "inline files control / record control" IRRE-Container und einer Webkomponente statt.

Der CodeMirror-Codeeditor für TCA-Elemente kann nun auch Zeilenumbruch als Option anbieten.

Zielgruppe: Integration

WissenswertDie Bilder-Zuschnittsfunktion (Cropping) kann nun bei mehreren Bildformaten den Beschnittbereich übergreifend für alle Bilder verschieben und synchronisieren.

Zielgruppe: Redaktion

Die Vorschaufunktion von Elemente in der Layout-Ansicht im Backend kann nun automatisch mehr Informationen (z.B. Listen, HTML-Elemente mit Sanitizing) darstellen.

Zielgruppe: Redaktion

Die Sprache "Lao" ist nun verfügbar in TYPO3.

Zielgruppe: Redaktion

WissenswertDer Wizard zum Anlegen neuer Seiten (auch via Drag-and-Drop im Seitenbaum) wurde modernisiert und nutzt die Wizard-API zur Erstellung. Die Funktion zum Anlegen mehrerer Seiten in einem Schwung existiert nicht mehr.

Zielgruppe: Redaktion

Nun kann auch ohne Drag and Drop eine Seite zügig im Seitenbaum unter Beachtung bessserer Accessibility angelegt werden. Weiterhin kann zum erstellen neuer Seitentypen auch für jeden Seitentyp gezielt ein eigener Wizard (mit eigenen Feldern) via TCA definiert werden.

Die History-Ansicht von Elementen erhält nun auch eine Sprachauswahl um den Sprachkontext zu wechseln.

Zielgruppe: Redaktion

Das Command "backend:user:create" kann nun die initiale Sprache des neuen Backendbenutzers festlegen.

Zielgruppe: Integration

Die Optionen des CLI messenger:consume (Decorator vom Symfony Command) sind nun mit dem Eltern-Element abgeglichen.

Zielgruppe: Integration

GoodieDas typo3 CLI binary kann nun mit den aus der TYPO3-Console von Helmut Hummel bekannten "configuration:set" und "configuration:show" Befehlen die TYPO3_CONF_VARS verwalten.

Zielgruppe: Integration

GoodieEin neues Widget zur Darstellung der zuletzt geöffneten Dokumente steht zur Verfügung, um die redaktionelle Arbeit sofort dort fortzusetzen wo man aufgehört hatte.

Zielgruppe: Redaktion

Ein neues Widget "Letzte Backend-Logins" zeigt Administratoren an, welche Redaktionsmitglieder sich zuletzt eingeloggt haben.

Zielgruppe: Administration

Für die Finisher EmailToSender und EmailToRecipient ist nun eine Element-Auswahl eingebaut worden, damit für gewisse Felder die Auswahl sofort über ein Popup durchgeführt werden kann statt manueller Texteingabe.

Zielgruppe: Integration

WissenswertDer Datums-Validator kann nun relative Datumsangaben ("Samstag vor einer Woche", "in 4 Monaten", ...) festlegen.

Zielgruppe: Integration

GoodieDer CKEditor kann nun auch in EXT:form Formularen (Finisher für Mailtexte, Elemente) eingesetzt werden. Die E-MailFinisher können zusätzlich nun eine individuelle Nachricht (mit RTE Support) in der Mail aufnehmen.

Zielgruppe: Redaktion

GoodieDer Seitenbaum für Formular-Schritte innerhab der Formularbearbeitungs-GUI nutzt nun die Seitenbaum-Webkomponente. Damit ist Drag+Drop möglich, eine integrierte Suchfunktion und eine bessere Ein/Ausklappfunktion.

Zielgruppe: Redaktion

WissenswertDie Registrierung neuer Formularelemente wurde deutlich vereinheitlicht, so dass Boilerplate-JavaScript nicht selbständig eingebaut werden muss, sondern zur Verfügung gestellt wird. Neue Inhaltselemente sind somit einfach nur per YAML-Definition schnell verfügbar.

Zielgruppe: Integration

WissenswertEin neuer CLI-Befehl "form:cleanup:uploads" ermöglicht das Löschen von obsoleten hochgeladenen Dateien in Formularen. Sehr wichtig, um ein sinnvolles Aufräumen zu ermöglichen!

Zielgruppe: Integration

WissenswertDer Upload von mehreren Dateien (gleichzeitig) in EXT:form Formularen ist nun möglich.

Zielgruppe: Integration

GoodieAuch das Formular-Element-Attribut "defaultValue" kann nun sprachabhängige Werte (XLIFF) enthalten.

Zielgruppe: Integration

Sehr wichtigFormulare können nun in der Datenbank (form_definitions) gespeichert werden statt nur im Dateisystem. Die Datei-Speicherung ist deprecated. Mit einem Wizard/CLI können bestehende FAL-Formulare in die Datenbank migriert werden.

Zielgruppe: Integration

Sehr wichtigDie YAML-Formular-Registrierung wird nun automatisch (a la Site Sets in Extensions) erkannt und benötigt keine TypoScript/PHP-Registrierung mehr.

Zielgruppe: Integration

Die Indexed-Search Volltextsuche kann nun die Pagination-Typen per TypoScript konfigurieren. Dafür wurde auch ein neuer PSR-14 Event "AfterSearchResultSetsAreGeneratedEvent" eingefügt, mit dem Extensions auf die Suchergebnisdaten zugreifen können.

Zielgruppe: Integration

WissenswertDie Extbase Repository Query-Methoden erlauben nun direkte Methoden für: orderBy, concat, trim und coalesce.

Zielgruppe: Entwicklung

Sehr wichtigExtbase-Aktionen können nun per PHP Attribut steuern, welche eingeloggten Benutzergruppen Aktionen ausführen dürfen. Hiermit ist nun mit sehr geringem Overhead eine sehr einfache Zugriffssteuerung innerhalb Extbase möglich, die vorher aufwändig manuell geschehen musste.

Zielgruppe: Entwicklung

WissenswertAlle Extbase-Entities können nun in der sys_history beim Anlegen und Bearbeiten nachverfolgt werden. Hierzu dient ein Feature Toggle, das bewusst aktiviert werden muss.

Zielgruppe: Integration

WissenswertCLI Kommando "fluid:analyse" zum Parsing von Fluid-Templates zum Cache-Warmup und Fehleranalyse (CI).

Zielgruppe: Integration

GoodieCLI Kommando "fluid:namespaces" zur Darstellung aller global registrierten Namespaces.

Zielgruppe: Integration

Sehr wichtigEinführung einiger neuen "f:render.contentArea" und "f:render.record" sowie "f:render.text" ViewHelper. Hiermit können die Record API Objekte direkt mittels Fluid gerendert werden, und auch vollständige "colPos"-Bereiche ohne Fluid Style Content Integration in einem Rutsch gerendert werden. Alle semantischen Meta-Informationen können dadurch ausgewertet werden, durch das ebenfalls neue ContentArea Object. Auch FSC nutzt nun f:render.text.

Zielgruppe: Integration

GoodieDer f:media ViewHelper kann nun mit einem Attribut srcAttribute definieren, dass Youtube/Vimeo-Videos diese nicht sofort per src laden, sondern auch lazy Loading (Consenting) ermöglicht wird.

Zielgruppe: Integration

GoodieAuch Fluid Components können jetzt ihre Argumente per XSD Schema und IDE-Autovervollständigung anbieten.

Zielgruppe: Integration

GoodieExceptions innerhalb von Fluid-Template zeigen nun (endlich!) konkreten Zeilen und Dateibezug, auch im Caching-Context.

Zielgruppe: Integration

WissenswertEin neuer ViewHelper f:image.srcset kann unterschiedliche srcSet-Bildkollektionen mit spezifischen Pixeldichten erstellen.

Zielgruppe: Integration

GoodieDer Link Browser ermöglicht nun zu TypoLinks auch das rel HTML-Attribut redaktionell festzulegen.

Zielgruppe: Integration

GoodieFormEngine-Felder (vom Typ select, category, language) werden nun versteckt, wenn sie nur einen einzigen gültigen Wert enthalten können. Im Debug-Modus werden sie weiterhin gezeigt.

Zielgruppe: Integration

GoodieDateien, die über den Element-Browser zugeordnet werden (auch über die CKEditor-Linkfunktion) können nun mit einem HTML5-Downloadattribut versehen werden.

Zielgruppe: Redaktion

GoodieNeuer PSR-14 Event AfterPageUriGeneratedEvent um eine URI nach Routing-Erzeugung noch zu modifizieren.

Zielgruppe: Entwicklung

WissenswertFür die Option "limitToPages" im Routing können nun auch Symfony Expression Language Ausdrücke verwendet werden um diese Seiten dynamisch zu bestimmen.

Zielgruppe: Integration

Sehr wichtigDas ICU Message-Format für XLIFF-Label wird nun unterstützt, und kann z.B. genutzt werden um Pluralformen für Nachrichten ("2 neue Nachrichten" vs. "1 neue Nachricht") mit nur einem Label zu ermöglichen.

Zielgruppe: Integration

GoodieDas neue Interface TranslatorInterface definiert die neue Sprachhandlings-API und ermöglicht sinnvolles TypeHinting und Factory-Erstellung der Übersetzungs-API.

Zielgruppe: Entwicklung

Mit unserem festangestellten Mitarbeiter Garvin Hicking unterstützen wir aktiv die TYPO3-Entwicklung. Er arbeitet im Core-Merger Team des OpenSource Projekts mit, und ist daher über die neuesten Entwicklungen bestens informiert. In unseren Artikelserien zu TYPO3-Releases beleuchtet er detailiert (und garantiert ohne KI-Automatik) wichtige Änderungen.

Garvin Hicking
Senior Developer

BITV Check - Wir prüfen Ihre Website oder Ihr digitales Produkt.

Wir setzen die Projekte unsere Kunden nicht nur BITV-konform um, wir prüfen auch Websites, Apps und digitale Produkte hinsichtlich der gesetzlichen Anforderungen. Buchen Sie unser 30-Minten-Erstgespräch - unverbindlich, klar und kompetent. Denn digitale Barriefreiheit ist Pflicht.