Mit dem offiziellen Release von TYPO3v11 LTS ist nun auch die letzte Unterversion TYPO3v11.5 erschienen und bringt eine ganze Reihe neuer Features mit sich. Das neueste Release der TYPO3 Version 11.5 bringt einige neue Features und Verbesserungen (vor allem für TYPO3-Entwickler) mit sich.
Wir haben die Entwicklung der TYPO3 Version 11 mit Spannung verfolgt und die neuen Funktionen und Hauptmerkmale auf unseren Test-Sites ausprobiert.
Die TYPO3 Version 11.5 enthält zwar weniger, aber dafür sehr wichtige Features, während die wichtigsten Funktionen bereits in den früheren TYPO3 Versionen 11.1, 11.2, 1..3 und 11.4 enthalten sind. Schauen Sie sich diese an,
- 15+ Neue Funktionen und Verbesserungen in TYPO3 v11.2
- 25+ neue Verbesserungen in TYPO3 v11.3
- 30+ Erstaunliche Funktionen in TYPO3 v11.4!
Und noch etwas: Dieser Blog ist den TYPO3-Mitarbeitern gewidmet, die dazu beitragen, das OpenSource-Projekt TYPO3 zu verbessern und zu bereichern.
In diesem Artikel werden wir Ihnen zeigen, was in TYPO3 11.5 mit seinen neuen Power Packs in der neuesten Version enthalten ist.
Hervorragende Eigenschaften von TYPO3 11.5
1) Assistent für neue Datensätze
Die im Assistenten "Neuer Datensatz" angezeigten Tabellen sind derzeit logisch und visuell besser getrennt.
2) TCA Option groupName
Diese Änderung fügt die Eigenschaft "groupName" hinzu, um Datensätze innerhalb des "New Record"-Assistenten in logische Gruppen zu gruppieren, wobei TYPO3 Core "system", "frontendaccess", "backendaccess" und "content" definiert.
3) TCA Option internal_type
Der häufigste Anwendungsfall für TCA-Felder vom Typ "Gruppe" ist die Verwendung von "internal_type=db". Daher ist diese Option nun der Standardwert. Dies ermöglicht es uns, entsprechende Teile in FormEngine, Datahandler, etc. zu vereinfachen. Außerdem wurden alle Core TCA Dateien angepasst und definieren diese Option nicht mehr für den Typ "group".
4) Neues PSR-14 Ereignis
Das folgende neue PSR-14-Ereignis wurde eingeführt: ModifyResolvedFrontendGroupsEvent
Dieses Ereignis ermöglicht es Entwicklern, Frontend-Benutzergruppen
dynamisch während einer Frontend-Anfrage zuzuordnen.
5) EXT.form - Bootstrap 5 kompatible Vorlagen
Das Formular-Framework bietet jetzt Bootstrap 5 kompatible Vorlagen. Das Markup wurde komplett überarbeitet, unnötige Verschachtelungsebenen wurden entfernt und es werden semantisch sinnvollere HTML-Tags verwendet. Auch im Bereich der Barrierefreiheit wurden die Templates verbessert.
Im Zuge der Bootstrap 5 Kompatibilität wurden zwei neue Breakpoints "xl" und "xxl" in der Grid-Konfiguration hinzugefügt.
Alle hart kodierten CSS-Klassen in den Templates wurden in die Konfiguration verschoben. Dies vereinfacht die Integration des Frontends. Die Änderung macht es für Integratoren einfacher, Upgrades des Frontend-Frameworks vorzunehmen. In den meisten Fällen ist es nun nicht mehr notwendig
ein Template für Änderungen an Klassen zu überschreiben. Stattdessen ist es nur noch notwendig, die entsprechenden CSS-Klassen zur Formularkonfiguration hinzuzufügen.
Um nicht kaputt zu gehen, werden die Templates standardmäßig noch so gerendert, wie sie bisher waren.
Um die neuen Bootstrap 5 kompatiblen Templates zu verwenden, muss die Formular-Rendering-Option `templateVariant` in der Formularkonfiguration von `Version1` auf `Version2` gesetzt werden.
Übersetzt mit www.DeepL.com/Translator (kostenlose Version)
6) Fluid ViewHelpers
Es kam ein paar Mal vor, dass der Kern die Fluid Viewhelper änderte, um sie an die aktuellen Bedürfnisse anzupassen, indem er die Template-Argumente beibehielt, aber die interne Handhabung und die Methodensignaturen änderte.
Es kam vor, dass Entwickler dann mit "Das hat meinen eigenen Viewhelper kaputt gemacht!" auftraten und wir darauf reagieren mussten. Der ImageViewHelper ist zum Beispiel ein Opfer davon geworden.
Aus der Sicht eines Frameworks sind Viewhelper spezifische Implementierungen, die auf einen bestimmten Zweck zugeschnitten sind. In den meisten Fällen sind sie vom Code her klein.
- Der Patch bringt eine Important.rst, um eine bevorstehende v12-Änderung anzukündigen, die alle Viewhelper als endgültig deklarieren wird.
- Erweiterungen von Drittanbietern können diese nicht mehr mit eigenen Varianten erweitern
- Die Erweiterung dieser Klassen und die Änderung ihres Anwendungsbereichs sollten nicht unterstützt werden.
- Entwickler sollten ein passendes Abstract erweitern, anstatt spezifische VH's zu erweitern.
Der Kern erweitert derzeit natürlich auch ein paar VH's selbst, aber dies ist zu spät für v11 jetzt zu ändern und anzupassen.
Stattdessen wird die Zeit in v12, um diese Fälle zu lösen und einen Blick auf die abstrakten Klassen als auch zu sehen, welche VH-Funktionalität sollte in abstrakte enthalten sein, um die Wiederverwendung und den Übergang für die Erweiterung Autoren zu vereinfachen und Kern-API zu schärfen.
<f:transform.html>
Der ViewHelper löst einzelne TYPO3-Link-Handler wie t3://-URIs auf und transformiert sie.
Er ist unabhängig von jeder TypoScript-Konfiguration und arbeitet ohne Vermischung von Belangen in ContentObjectRenderer::parseFunc
<f:transform.html selector="a.href,div.data-uri">
<a href="t3://page?uid=1693" class="page">visit</a>
<div data-uri="t3://page?uid=1693" class="page trigger">visit</div>
</f:transform.html> 7) Veraltete PHP-Klassen
Die folgende Schnittstelle wurde als veraltet markiert:
TYPO3\CMS\Extbase\Mvc\View\ViewInterface
Um Fluid weiter von Extbase zu entkoppeln, wurde die folgende Klasse als veraltet markiert:
TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext Veraltete & entfernte TYPO3-Funktionen
Benutzerdefinierte JSWindow-Optionen
Die HMENU/TMENU-Optionen zum Öffnen von Links eines Menüs in einem benutzerdefinierten JavaScript-Popup wurden als veraltet markiert:
# deprecated:
page.123 = HMENU
page.123.1 = TMENU
page.123.1.JSWindow = 1
page.123.1.JSWindow.params = width=200,height=300,status=0,menubar=0
Der Aufruf einer Frontend-Seite mit HMENU- und JSwindow-Pop-Ups löst nun eine PHP-Deprecation-Warnung aus.
Externes CSS einbeziehen
Die Option zur Verwendung der @import-Syntax für die Einbindung externer CSS-Dateien durch TypoScript wurde als veraltet markiert:
# deprecated:
page = PAGE
page.includeCSSLibs.file1 = fileadmin/benni.css
page.includeCSSLibs.file1.import = 1
Optionen für die Migration:
- den <link>-Tag verwenden oder
- ein inlineCSS TypoScript manuell erstellen
Verschiedene getInstance()-Methoden
Die folgenden Methoden wurden als veraltet markiert:
TYPO3\CMS\Core\Resource\Index\ExtractorRegistry::getInstance()
TYPO3\CMS\Core\Resource\Index\FileIndexRepository::getInstance()
TYPO3\CMS\Core\Resource\Index\MetaDataRepository::getInstance()
TYPO3\CMS\Core\Resource\OnlineMedia\Helpers\OnlineMediaHelperRegistry::getInstance()
TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance()
TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorRegistry::getInstance()
TYPO3\CMS\Form\Service\TranslationService::getInstance()
TYPO3\CMS\T3editor\Registry\AddonRegistry::getInstance()
TYPO3\CMS\T3editor\Registry\ModeRegistry::getInstance() Authentifizierungs-Objekte
Die ersten Argumente der folgenden Methoden wurden als veraltet markiert:
TYPO3\CMS\Core\Authentication\AbstractUserAuthentication
- writeUC()
- unpack_uc()
TYPO3\CMS\Core\Authentication\BackendUserAuthentication
- backendCheckLogin()
Das dritte Argument der folgenden Methode wurde als veraltet markiert:
TYPO3\CMS\Core\Authentication\BackendUserAuthentication
- isInWebMount()
TypoScript parseFunc.sword
- Die TypoScript-Option parseFunc.sword erlaubt es, Suchwörter mit einem speziellen Umbruch zu versehen, wenn no_cache = 1 gesetzt ist. Diese Funktionalität ist veraltet
- Betroffen sind Anlagen, auf die z. B. mit einer Anfrage wie dieser zugegriffen wird:
SectionMarkupGenerated Ereignisse
Die folgenden Methoden wurden als veraltet markiert:
TYPO3\CMS\Backend\View\Event\BeforeSectionMarkupGeneratedEvent->getPageLayoutView()
TYPO3\CMS\Backend\View\Event\BeforeSectionMarkupGeneratedEvent->getLanguageId()
TYPO3\CMS\Backend\View\Event\AfterSectionMarkupGeneratedEvent->getPageLayoutView()
TYPO3\CMS\Backend\View\Event\AfterSectionMarkupGeneratedEvent->getLanguageIdg() PHP Function str_starts_with()
Die folgenden Methoden wurden als veraltet markiert:
StringUtility::beginsWith()
StringUtility::endsWith()
GeneralUtility::isFirstPartOfStr()
GeneralUtility::minifyJavaScript()
PHP v8 bietet die Funktion str_starts_with(), die die richtige Typisierung unterstützt und eine bessere Leistung bietet.
Inline-JavaScript in fieldChangeFunc
Die Option zur Verwendung eines iframe im Navigationsbereich für Backend-Module durch "fieldChangeFunc" wurde als veraltet markiert:
// Abgelehnt:
$this->data[’parameterArray’][’fieldChangeFunc’][’example’] = "alert(’demo’);";
$parameterArray[’fieldChangeFunc’][’example’] = "alert(’demo’);";
Der TYPO3 Core unterstützt von Haus aus Web Components, die stattdessen verwendet werden sollten.
RequireJS Rückruf-Funktionen
Die Verwendung von RequireJS-Callback-Funktionen wurde als veraltet markiert (zum Beispiel: $resultArray['requireJsModules'] mit skalarem String)< Diese Aufrufe sollten durch neue JavaScriptModuleInstruction-Deklarationen ersetzt werden.
Das war's!
Was ist Ihre Lieblingsfunktion in TYPO3 v11.5 oder suchen Sie nach einer neuen Funktion?
Um mehr über TYPO3 v11.5 zu erfahren, schauen Sie sich die folgenden Ressourcen an.
- https://news.typo3.com/archive/typo3-v11-lts-warp-speed
- https://get.typo3.org/release-notes/11.x/TYPO3_CMS_11.5.0
Es gibt einige aufregende Funktionen in TYPO3 v11, die wir unbedingt mit Ihnen besprechen möchten! Als TYPO3-Entwickler oder -Integrator; Was ist Ihre Lieblingsfunktion in TYPO3 v11.5? Haben Sie irgendwelche Fragen zu TYPO3 v11? Schreiben Sie einfach in das Kommentarfeld unten und wir werden Ihnen gerne antworten.
Viel Spaß mit TYPO3 v11!
Wolfgang Weber
Brand & Communication LeadWolfgang Weber gestaltet TYPO3 mit Leidenschaft und Fachwissen. Als TYPO3-Enthusiast beim T3Planet Shop hat er an TYPO3-Projekten mitgewirkt, die Websites schneller und sicherer machen. Abseits von TYPO3 findet man ihn wahrscheinlich beim Erkunden lokaler Cafés oder beim Fußball.
More From Author