30+ Erstaunliche Funktionen in TYPO3 v11.4!

Juhu! TYPO3 v11.4 kommt mit vielen Verbesserungen im Backend und bei den Benutzerfunktionen. Mit wichtigen neuen Funktionen und Verbesserungen wird unser Lieblings-CMS TYPO3 einfach immer besser.

30+ Erstaunliche Funktionen in TYPO3 v11.4!

FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.

Juhu! TYPO3 v11.4 kommt mit vielen Verbesserungen im Backend und bei den Benutzerfunktionen. Mit wichtigen neuen Funktionen und Verbesserungen wird unser Lieblings-CMS TYPO3 einfach immer besser.

Im Gegensatz zu uns warten Sie sicher schon gespannt auf die Veröffentlichung von TYPO3 Version 11. Die Beta-Version 11.3 von TYPO3 ist da und wir haben die Entwicklung der TYPO3 Version 11 genau verfolgt und die neuen Funktionen auf unseren Test-Sites ausprobiert. Für jede TYPO3 Version 11.4, die veröffentlicht wird, habe ich spezifische Einblicke in die neuen Features und Funktionen gegeben.

Und noch etwas: Dieser Blog ist den TYPO3-Mitarbeitern gewidmet, die dazu beitragen, das TYPO3 OpenSource-Projekt zu verbessern und zu erweitern.

In diesem Artikel werden wir Ihnen zeigen, was in T3v11 mit den neuen Power Packs in der neuesten Version kommt.

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

Modul Dateiliste

Es ist nun auch möglich, Aktionen im Modul File at Filelist direkt auszuführen, ohne Dateien vorher in die Zwischenablage von TYPO3 zu übertragen.

Backend-Benutzer können nun mehrere Dateien oder Ordner auf einmal herunterladen, indem sie TYPO3 anweisen, ein ZIP-Archiv zu erstellen.

Der Spaltenselektor ist jetzt auch in Datei -> Dateiliste für die Backend-Benutzerauswahl verfügbar, um auszuwählen, welche Felder für Dateien/Ordner angezeigt werden sollen.

Spalten Selektor Filter

Der Spaltenselektor in der Datensatzliste verfügt jetzt über einen Filter am oberen Rand. Dies erleichtert es den Backend-Benutzern, die richtigen Elemente zu aktivieren/deaktivieren, insbesondere bei Tabellen mit vielen Spalten.

Modul Arbeitsbereiche

Die Benutzerfreundlichkeit des Moduls "Arbeitsbereiche" wurde verbessert. Eine Dropdown-Box am oberen Rand ermöglicht es Backend-Benutzern zum Beispiel, einfach zwischen Arbeitsbereichen zu wechseln.

Ein neues Dropdown-Menü im Modul "Arbeitsbereiche" ermöglicht es den Nutzern, Elemente nach einem bestimmten Stadium zu filtern, z. B. "Bearbeitung" oder "Bereit zur Veröffentlichung".

Sprachen/Übersetzungen

Die Ansicht "Sprachen" unter Web -> Seite ist jetzt besser mit Spaltenansicht. Die Standardsprache zeigt nur Inhaltselemente dieser Sprache an. Backend-Benutzer können den Punkt "Alle Sprachen" verwenden, um zur Spaltenansicht zu wechseln und die verfügbaren Sprachen anzuzeigen.

TYPO3-Umleitungen.

Backend-Benutzer können jetzt unter Site Management -> Redirects die Option "never hit" aktivieren. Dieser Filter zeigt nur Weiterleitungen an, die nie aufgerufen wurden. Hinweis: Die Funktion erfordert die Aktivierung der Funktion "Weiterleitungs-Trefferzahl".

Änderungen bei der Entwicklung für Entwickler und Integratoren

Neuer TCA-Typ: Kategorie

Dem TYPO3 Core wurde ein neuer TCA Feldtyp "category" hinzugefügt. Dieser löst die CategoryRegistry und die Methode ExtensionManagementUtility->makeCategorizable() ab. TYPO3 generiert automatisch die TCA-Konfiguration und fügt auch das Datenbankfeld

Entwickler können Beziehungen definieren, manyToMany (Standard), oneToMany, oneToOne zum Beispiel:

 

$GLOBALS[’TCA’][$myTable][’columns’][’mainCategory’] = [
  ’config’ => [
    ’type’ => ’category’,
    ’relationship’ => ’oneToOne’
    ]
];

Dateiordner Konfigurationen

Die TCA-Konfiguration "fileFolder" wurde gestrafft und die Optionen sind nun als "fileFolderConfig" verfügbar. Integratoren können die neue TCA-Konfiguration in TScong überschreiben

Zum Beispiel:

 

config.fileFolderConfig.folder
config.fileFolderConfig.allowedExtensions
config.fileFolderConfig.depth

TCA-Auslandstabelle

Die Einstellung foreign_table_where in der TCA unterstützt jetzt auch die

folgende Markierungen:

 

###SITE:<KEY>###
(e.g. ###SITE:rootPageId###)

###SITE:<KEY>.<SUBKEY>###
(e.g. ###SITE:mySetting.categoryPid###)

 

Dies ermöglicht Entwicklern den Zugriff auf Einstellungen aus der Site-Konfiguration

TCA-Option treeConfig

Eine neue Einstellung startingPoints wurde in die treeConfig TCA Konfiguration eingeführt

Mit der Einstellung startingPoints können Entwickler mehrere Datensätze als Wurzeln für Baumeinträge festlegen, basierend auf einer CSV-Liste von Seiten-IDs.

Entwickler können auch auf Werte aus der Site-Konfiguration zugreifen, indem sie die Syntax verwenden:

 

"###SITE:...###"

Benutzerdefinierte Icon-Registrierung

Entwickler von Erweiterungen können jetzt benutzerdefinierte Symbole über einen Service Container registrieren. Der neue Ansatz verbessert die Leistung der Anfragen. Man kann die Konfiguration in der Datei Configuration/Icons.php speichern:

 

<?php
    return [
     ’myicon’ => [
       ’provider’ => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
      ’source’ => ’EXT:my_extension/Resources/Public/Icons/myicon.svg’
   ]
];

Forms Framework: Datepicker.js

The DatePicker.js file has been moved to the Resources/Public/JavaScript/Frontend/ directory of the Form Framework. Integrators can now also configure an alternate publicly accessible directory if required.

Modul Arbeitsbereiche

Die Benutzeroberfläche des Moduls Arbeitsbereiche wurde ebenfalls verbessert, da Administratoren nun die Arbeitsbereichseinstellungen direkt bearbeiten können (der Zugriff über das Modul Liste ist nicht mehr erforderlich).

Datenbank-Identifikator Zitat

TCA-Schlüssel, die SQL-Fragmente enthalten, verwenden einen neuen Quoting-Mechanismus, wenn der TYPO3-Kern die Datenbankabfragen erstellt (Felder wie foreign_table_where, MM_table_where, etc.) 

Dies ist wichtig, um DBAL-Kompatibilität zu gewährleisten und macht eine Datenbankverbindung während des TCA-Cache-Warmups überflüssig 

Mit dem Feature-Flag "runtimeDbQuotingOfTcaConfiguration" können Integratoren/Entwickler bei Bedarf das alte Verhalten erzwingen.

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

Wichtige Felder

Die folgenden zwei Felder sind jetzt immer aktiviert/angezeigt in der TCA: 

  • Tt_content.colPos 
  • pages.slug

Dies verhindert, dass Integratoren versehentlich die Zugriffsberechtigungen für Backend-Benutzer falsch konfigurieren. Der folgende TScong überschreibt die Standardeinstellungen und blendet diese Felder bei Bedarf aus: TCEFORM.pages.slug.disabled = 1 TCEFORM.tt_content.colPos.disabled = 1

Neue Option: showNewRecordLink

Entwickler können nun den "Neuer Datensatz"-Link von TCA-Inline-Elementen unabhängig von der "+"-Schaltfläche und allen anderen "Ebenen-Links" deaktivieren. Hierfür wurde eine neue Option showNewRecordLink eingeführt.

SoftReference-Parser

Entwickler können jetzt benutzerdefinierte Soft-Reference-Parser registrieren.

Zum Beispiel (in le Configuration/Services.yaml): Vendor\MyExtension\SoftReference\MySoftReferenceParser:

 

tags: 
- name: softreference.parser 
parserKey: your_key 

 

Die Parser müssen die folgende neue Schnittstelle implementieren:

 

 TYPO3\CMS\Core\DataHandling\SoftReference\SoftReferenceParserInterface

Indizierte Suche

Die Systemerweiterung EXT:indexed_search verfügt nun über eine neue Konfigurationsoption: "basic.deleteFromIndexAfterEditing"

Wenn diese Option aktiviert ist (was die Standardeinstellung ist) und eine Seite oder ihr Inhalt aktualisiert wird, werden die Seite und ihr Inhalt aus dem Suchindex entfernt. Wenn diese Option deaktiviert ist, müssen Backend-Benutzer den Index bei Bedarf manuell löschen.

Icons im Modul Berichte

Entwickler können jetzt Icon-Identifikatoren im Registrierungs-Array des Backend-Moduls Reports bereitstellen.

CKEditor Plugin "Autolinking"

URLs wie example.com, die im RTE eingegeben werden, werden automatisch in einen externen Link umgewandelt.

Dies geschieht durch das Plugin "AutoLink" von CKEditor. Seit TYPO3 v11.4 ist das Standardschema für diese Links https. Natürlich können Redakteure das Schema bei Bedarf manuell auf http aktualisieren

Doctrine DBAL: Neue Methode notInSet()

Der DBAL ExpressionBuilder von TYPO3 unterstützt nun auch die Methode notInSet()

Dies funktioniert mit allen offiziell unterstützten DB-Engines wie SQLite, MySQL/MariaDB, PostgreSQL und MSSQL.

Die Klasse HtmlParser

Der HTML-Parser unterstützt jetzt das Attribut "srcset". Dies ist besonders wichtig für responsive Bilder.

TYPO3 CLI

  • Die Befehlszeilenschnittstelle (CLI) von TYPO3 wurde um einen neuen Befehl erweitert:

./bin/typo3 impexp:export [options] [--] [<filename>]. Der Befehl exportiert den gesamten TYPO3-Seitenbaum oder Teile davon. Integratoren und Administratoren können den Export durch eine Vielzahl von Optionen beeinflussen (z.B. Dateityp, Seitenbaumtiefe, etc.)

Exporte können in andere TYPO3-Instanzen re-importiert werden.

  • Neuer Befehl zur TYPO3-Befehlszeilenschnittstelle (CLI) hinzugefügt:
./bin/typo3 cache:warmup [--group <all|system|di|pages|...>]

 

Integratoren können nun alle Caches (Standard) oder selektiv über die verfügbaren Cache-Gruppen aufwärmen

Spezifische Cache-Gruppen können mit der Option --group definiert werden: system, pages, di oder all (Standard: all)

  • Neuer Befehl zur TYPO3-Befehlszeilenschnittstelle (CLI) hinzugefügt:
./bin/typo3 cache:flush [--group <all|system|di|pages|...>]

 

Integratoren können nun alle Caches flushen (Standard) oder selektiv durch die verfügbaren Cache-Gruppen

Global Namespace

Wenn TYPO3 den Cache aufwärmt, wird der Code der folgenden Dateien nun in den globalen Namespace gescoped: ext_localconf.php und ext_table.php

Das bedeutet, dass Extension-Entwickler den Inhalt dieser Dateien nicht mehr in einen lokalen Namespace verpacken müssen 

Performance-Optimierung 

Um die Performance weiter zu optimieren, wird TYPO3 strenger, was das Hochfahren der Kernkonfiguration angeht. Der Zugriff auf die Datenbank oder die Verwendung des Cache-Managers in den folgenden Dateien löst einen Deprecation-Fehler aus: 

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

  • ext_localconf.php 
  • ext_tables.php 
  • Configuration/TCA/* 

Autoren von Erweiterungen sollten sicherstellen, dass ihre Erweiterungen die richtige Initialisierung an den richtigen Stellen verwenden

Composer-basierte Installationen

  • Die Datei "PackageStates.php" ist in Composer-basierten Installationen überflüssig geworden.

Alle vom Composer zum System hinzugefügten Erweiterungen werden nun als aktiv betrachtet. Daher bieten der Extension Manager und die TYPO3 CLI nicht mehr die Möglichkeit, Erweiterungen zu aktivieren/deaktivieren.

  • TYPO3-Erweiterungen sind Composer-Pakete und sollten mit Composer installiert werden. Speichern Sie Erweiterungen nicht im Verzeichnis typo3conf/ext/, wenn sie nicht mit Composer installiert wurden. Für die Migration: Ziehen Sie in Erwägung, sie in ein separates Verzeichnis zu verschieben und fügen Sie das Verzeichnis als Repository hinzu, zum Beispiel:
... 
"repositories": [{
"type": "path", 
"url": "./packages/*/" }], 
... 

PSR-14 Ereignisse

Die folgenden PSR-14-Ereignisse wurden dem TYPO3 Core hinzugefügt:
ProcessFileListActionsEvent
(Ereignis, nachdem die Aktionen im Dateilistenmodul erzeugt wurden)

BootCompletedEvent
(Ereignis wird bei jeder Anfrage ausgelöst, wenn TYPO3 vollständig gebootet ist)

ModifyFileDumpEvent
(Ereignis wird ausgelöst, bevor eine Datei entladen wird)

ModifyClearCacheActionsEvent
(Ereignis ermöglicht die Änderung von "Cache"-Einträgen in der oberen Symbolleiste des Backends)

AfterFileCommandProcessedEvent
(Ereignis ermöglicht die Ausführung zusätzlicher Aufgaben, nachdem eine Dateioperation ausgeführt wurde)

Die folgenden PSR-14-Ereignisse wurden dem TYPO3 Core hinzugefügt:

  • ModifyRecordListTableActionsEvent
  • ModifyRecordListHeaderColumnsEvent
  • ModifyRecordListRecordActionsEvent

Diese Ereignisse können verwendet werden, um das Verhalten von Tabellenauflistungen zu ändern. Sie können verwendet werden, um Spalten und Aktionen entweder hinzuzufügen, zu ändern oder zu entfernen.

Attribut "Kanal" für Logger Injection (PHP v8)

TYPO3 v11.4 führt eine PHP v8 spezifische Funktion ein: Attribute. Dieses PHP-Feature ermöglicht es Entwicklern, Metadaten zu Klassen, Methoden, Variablen usw. hinzuzufügen. Entwickler können nun den Komponentennamen kontrollieren, mit dem ein injizierter Logger erstellt wird

Neue Klasse LinkResult

Der TYPO3 Core wurde um eine neue Klasse erweitert:

 

TYPO3\CMS\Frontend\Typolink\LinkResult

 

Diese Klasse implementiert das LinkResultInterface. Sie repräsentiert einen erstellten Link zu einer Ressource (Seite, E-Mail, etc.)

Das Objekt enthält das Basisergebnis eines von TypoLink erzeugten Links und ermöglicht es Entwicklern, Linkdaten auf konsistentere Weise zu behandeln. Es vereinfacht auch die Handhabung von Typolinks, z. B. bei der JSON-Ausgabe.

Informationen zur Bewerbung

Wenn ein aktiver Debugger durch die PHP-Funktion extension_loaded() ermittelt werden kann, wird der Debugger in den Anwendungsinformationen aufgeführt.

Extbase ObjectManager

Der TYPO3 v11 Core verwendet den Extbase ObjectManager nicht mehr. Alle zugehörigen Komponenten wurden als veraltet markiert. Zum Beispiel schreibt der Aufruf von ObjectManager->get() nun eine Deprecation-Warnung in das Log. Entwicklern wird empfohlen, seit TYPO3 v10 die DependencyInjection-Komponente von Symfony zu verwenden.

Generische Extbase Domain-Klassen

Die folgenden generischen Extbase-Domänenmodelle und -Repositories wurden als veraltet markiert:

 

TYPO3\CMS\Extbase\Domain\Model\BackendUser
TYPO3\CMS\Extbase\Domain\Model\BackendUserGroup
TYPO3\CMS\Extbase\Domain\Model\FrontendUser
TYPO3\CMS\Extbase\Domain\Model\FrontendUserGroup
TYPO3\CMS\Extbase\Domain\Repository\BackendUserRepository
TYPO3\CMS\Extbase\Domain\Repository\BackendUserGroupRepository
TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
TYPO3\CMS\Extbase\Domain\Repository\CategoryRepository

Sammlungsarten von nicht-persistenten Objekten

Sammlungstypen werden verwendet, um eine bestimmte Klasse zu definieren, die

innerhalb der ObjectStorage-Klasse von Extbase, zum Beispiel:

 

/**
* @param ObjectStorage<Item> $items
*/
public function setItems(ObjectStorage $items): void
{
$this->items = $items;
}

 

Diese Docblocks werden analysiert, damit der PropertyMapper weiß, wie er eingehende Anfragen zuordnen soll.

Entwickler können nun Auflistungstypen in Docblock-Annotationen auch für nicht-persistente Objekte verwenden.

Fluid ViewHelpers

Die Fluid ViewHelpers "f:uri.external" und "f:link.external" verwenden nun https als Standardschema

Zum Beispiel:

 

<f:link.external uri="example.com">
externer Link
</f:link.external>

 

Dadurch wird der Link erzeugt:

 

<a href="https://example.com">external link</a>

 

Um den Standardwert zu überschreiben, können Entwickler das Schema wie folgt explizit festlegen (z. B. "http"):

 

<f:link.external uri="example.com" defaultScheme="http">
externer Link
</f:link.external>

Fluid ViewHelpers

Der Fluid ViewHelper "f:form.password" unterstützt nun auch das Attribut "autocomplete". Dieses Attribut kann z.B. verwendet werden, um Passwort-Managern mitzuteilen, wie sie das Passwort-Eingabefeld behandeln sollen.

Fluid StandaloneView und ContentObjectRendere

Erweiterungen, die eine Instanz der StandaloneView erzeugen, sollten keine Instanz des ContentObjectRenderers als Konstruktor-Argument übergeben. Andernfalls generiert TYPO3 einen Deprecation-Fehler.

Fluid View Clean-up

Es wurden Aufräumarbeiten durchgeführt, um die Fluid-Ansicht zu vereinfachen und zu rationalisieren

Die folgenden Klassen wurden als veraltet gekennzeichnet:

 

TYPO3\CMS\Extbase\Mvc\View\EmptyView
TYPO3\CMS\Extbase\Mvc\View\AbstractView

 

Die Methode canRender() wurde aus der folgenden Schnittstelle entfernt:

 

TYPO3\CMS\Extbase\Mvc\View\ViewInterface

Schlussfolgerung

Wir hoffen, dass dieser Artikel Ihnen einen guten Eindruck davon vermittelt, was in der kommenden TYPO3 11.4 enthalten sein wird. Lassen Sie uns wissen, welche Funktionen Sie interessant finden und was Sie sich für eine zukünftige TYPO3-Version wünschen würden.

Post a Comment

×