FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
Wenn Sie ein TYPO3 Integrator oder -Entwickler sind, der bisher bequem die Maske zur Erstellung benutzerdefinierter Inhaltselemente verwendet hat, fragen Sie sich vielleicht: "Warum sollte ich zu Content Blocks wechseln?" Die kurze Antwort: Zukunftssicherheit, saubere Struktur und Unterstützung durch die Community. In diesem Beitrag erfahren Sie, wie Sie den Umstieg bewerkstelligen können, ohne den Anschluss zu verlieren.
Sie haben also schon von Content Blocks gehört, der neuen Möglichkeit, eigene Inhaltselemente in TYPO3 zu definieren. Inzwischen haben Sie auch eine Website (oder mehrere), auf der die Mask-Erweiterung läuft. Vielleicht sind Sie aber auch bereit für einen standardisierten Ansatz, um Ihre TYPO3-Inhaltselemente zu erstellen.
In diesem Blog werden zwei wesentliche Methoden für die Migration von Mask zu Content Blocks vorgestellt:
- Automatische Migration: Perfekt, wenn Sie eine schnelle, einmalige Lösung wünschen.
- Manuelle Migration: Ideal für diejenigen, die eine feinkörnige Kontrolle bevorzugen oder spezielle Anpassungen vornehmen möchten.
Hut ab vor Team Content Blocks
Bevor wir uns mit den Details befassen, sollten wir uns einen Moment Zeit nehmen, um das Team von Content Blocks zu würdigen. Sie haben die Erstellung und Pflege benutzerdefinierter Elemente einfacher und sauberer denn je gemacht. Ihr Engagement für die Open-Source-Zusammenarbeit hat zu einem Ansatz geführt, der mit der Kernphilosophie von TYPO3 übereinstimmt - modular, flexibel und zukunftsorientiert. Hut ab vor Ihnen!
Lassen Sie uns über die Terminologie sprechen: Was sind Masken und Inhaltsblöcke?
Maske in Kurzform
- Mask ist eine benutzerfreundliche Erweiterung, mit der Sie eigene Inhaltselemente über eine grafische Oberfläche erstellen können.
- Sie ist dafür bekannt, dass sie dynamische Felder und verschachtelte Inhaltsstrukturen ermöglicht, ohne dass tiefgreifende Kenntnisse der TYPO3-Interna erforderlich sind.
Content Blocks in einer Kurzfassung
- Content Blocks ist eine auf Konventionen basierende, zukunftsorientierte Methode zum Aufbau von Inhaltselementen.
- Jeder Content Block bündelt Konfiguration(config.yaml), Templates, Icons und Sprachbezeichnungen in einem übersichtlichen "Paket" innerhalb Ihrer Site Extension.
Hauptunterschied: Content Blocks sind so konzipiert, dass sie sich nahtlos in die sich weiterentwickelnden Standards von TYPO3 einfügen und Ihre Site langfristig wartbar machen.
Warum Inhaltsblöcke (zukünftige TYPO3 Core Integration)
Einer der Hauptgründe für den Wechsel zu Content Blocks ist die sich entwickelnde Roadmap von TYPO3. Es gibt eine laufende Entwicklung, die darauf abzielt, Content Blocks (oder seine Kernkonzepte) in einer kommenden Hauptversion direkt in TYPO3 zu integrieren. Wenn Sie jetzt migrieren:
- Sie sichern Ihr Projekt für die Zukunft ab und stellen sicher, dass Ihre benutzerdefinierten Elemente mit der nächsten Welle von TYPO3-Funktionen kompatibel bleiben.
- Sie orientieren sich an den Best Practices der TYPO3 Community, die sich zunehmend auf Content Blocks standardisiert.
- Sie profitieren von einem wachsenden Ökosystem von Tools, Dokumentation und Community-Support, die sich alle für eine einheitliche Verwaltung von benutzerdefinierten Elementen einsetzen.
Auf die Plätze, fertig, migrieren: Welche Methode soll ich wählen?
- Automatische Migration: Wenn Sie mehrere Maskenelemente haben und einen unkomplizierten, weitgehend unaufwändigen Prozess wünschen, ist dies eine gute Wahl.
- Manuelle Migration: Wenn Sie über fortgeschrittene Anpassungen verfügen oder einfach gerne jedes Detail kontrollieren, lohnt es sich, Schritt für Schritt vorzugehen.
In jedem Fall erreichen Sie das gleiche Ziel - eine vollständig migrierte Gruppe von Inhaltselementen.
Vorbedingungen Anforderungen
Bevor Sie mit der Migration von Mask zu Content Blocks beginnen, sollten Sie sicherstellen, dass Sie die folgenden Voraussetzungen erfüllen:
- TYPO3 Version: Idealerweise TYPO3 LTS Version. Content Blocks und die Migrationstools werden aktiv mit Blick auf diese Versionen entwickelt. Die automatische Migration ist nur mit TYPO3 v13 kompatibel.
- Composer-basierte Installation: Für die automatische Migration vereinfacht ein Composer-Setup die Installation und Deinstallation von Extensions, sowie die Migration per CLI-Befehl.
- Backup-Strategie: Sichern Sie immer Ihre Datenbank und Dateien vor größeren Änderungen.
- Site-Paket-Erweiterung: Sie benötigen eine benutzerdefinierte Erweiterung (z. B. EXT:your_theme) , in der Ihre neuen Inhaltsblöcke gespeichert werden.
- Ausreichende Berechtigungen: Stellen Sie sicher, dass Sie TYPO3-Konsolenbefehle (bin/typo3) ausführen und Composer-Abhängigkeiten ändern können.
Teil 1: Automatische Migration (auch bekannt als "Der schnelle Weg")
1.1 Überblick über den automatisierten Prozess
Stellen Sie sich die automatische Migration wie einen Assistenten vor, der Ihre vorhandenen Maskendefinitionen scannt und dann brandneue Inhaltsblöcke zaubert, die mit Ihren alten Elementen übereinstimmen. Er kopiert auch Vorlagen, Symbole und vieles mehr. Anschließend müssen Sie nur noch die alten Erweiterungen entfernen, und schon sind Sie fertig.
1.2 Schritt für Schritt
Anforderungen installieren
Stellen Sie sicher, dass Content Blocks installiert ist und installieren Sie die Erweiterung Mask to Content Blocks ,die Migration durchführt.
composer require friendsoftypo3/content-blocks
composer require nhovratov/mask-to-content-blocks
bin/typo3 mask-to-content-blocks:migrate
Hinter den Kulissen sammelt TYPO3 alle Ihre Maskenkonfigurationen und gibt neue Inhaltsblöcke im gleichen Erweiterungsordner aus.
Maske und das Migrationstool entfernen
composer remove mask/mask nhovratov/mask-to-content-blocks
Warum Maske entfernen? Wenn Sie sowohl die Maske als auch die Inhaltsblöcke aktiv lassen, haben Sie doppelte Definitionen für Ihre Inhaltselemente, was Ihre Website beschädigen kann.
Testen und Validieren
- Sind Ihre migrierten Elemente im Backend sichtbar?
- Sehen sie im Frontend noch richtig aus?
- Bereinigen Sie alle übrig gebliebenen Dateien oder Verweise.
Das war's! Sie haben eine automatische Migration abgeschlossen. In einigen Fällen - z. B. bei verschachtelten Inhalten oder Feldern in Seitenvorlagen - müssen Sie jedoch einige manuelle Anpassungen vornehmen. Lesen Sie weiter, um mehr zu erfahren.
Teil 2: Manuelle Migration (a.k.a. The Hands-On Way)
2.1 Wann Sie manuell vorgehen sollten
- Sie haben stark angepasste Maskenelemente.
- Sie möchten die Struktur bestimmter Felder überarbeiten.
- Sie ziehen es vor, Schritt für Schritt zu sehen, was unter der Haube passiert.
2.2 Grundlegende Einrichtung
Installieren Sie Content Blocks , während Mask noch aktiv ist.composer require friendsoftypo3/content-blocks
Ihr Projektordner könnte wie folgt aussehen:
EXT:your_theme
├── ...
└── ContentBlocks
└── ContentElements
Die Maske ist immer noch installiert, so dass Sie auf ihre Konfigurationen verweisen können.
2.3 Wiedererstellen eines Maskenelements in Inhaltsblöcken
Beispiel: Das "Slider"-Element
1. Erstellen Sie einen neuen Inhaltsblock
bin/typo3 content-blocks:make your_theme/slider
EXT:your_theme/ContentBlocks/ContentElements/slider.
# EXT:your_theme/ContentBlocks/ContentElements/slider/config.yaml
name: tx-mask/slider
typeName: mask_slider
prefixFields: false
- typeName: mask_slider => stellt sicher, dass der CType mit dem alten Mask-Element identisch ist.
- prefixFields: false => Behält Ihre Felder als tx_mask_* bei, anstatt eine weitere Schicht von Präfixen hinzuzufügen.
fields:
- identifier: tx_mask_slides
type: Collection
foreign_field: parentid
fields:
- identifier: tx_mask_header
type: Textarea
- identifier: tx_mask_text
type: Textarea
enableRichtext: true
- identifier: tx_mask_image
type: File
Damit wird Ihre "Slider"-Funktionalität repliziert. Vergewissern Sie sich, dass Sie alle Felder replizieren, insbesondere solche, die verschachtelte Sammlungen sind.
4. Vorlagen übertragen
Kopieren Sie die Datei slider.html (oder Ihre Teildateien und Layouts) in die Datei templates/frontend.html und andere relevante Ordner in Ihrer neuen Inhaltsblockstruktur.
5. Icons und Labels verschieben
- Ikonen: Benennen Sie Ihr benutzerdefiniertes Symbol in icon.svg um und legen Sie es im Ordner assets ab.
- Beschriftungen: Kopieren Sie Übersetzungen oder Beschriftungen aus Ihrer Maskenkonfiguration in die Datei labels.xlf im Inhaltsblock.
6. Aufräumen
- Entfernen oder deaktivieren Sie die alte Maskenslider-Definition.
- Sobald alle Elemente migriert wurden, können Sie Mask sicher deinstallieren.
Umgang mit besonderen Situationen
Verschachtelter Inhalt
- Mask setzt normalerweise colPos = 999 und blendet untergeordnete Elemente im Backend aus.
- Content Blocks basiert auf einer strukturierteren Eltern-Kind-Referenz.
- Stellen Sie sicher, dass Sie Ihre verschachtelte Inhaltslogik an den Ansatz von Content Blocks anpassen.
Felder der Seitenvorlage
Wenn Ihre Website auf Mask für seitenbezogene Felder angewiesen ist, beachten Sie, dass Content Blocks Seitenfelder nicht auf dieselbe Weise unterstützt. Sie können dies nachbilden, indem Sie benutzerdefinierte Seitentypen erstellen oder alternative Ansätze innerhalb von TYPO3 verwenden.
Deaktivieren von Inhaltselementen
Im Gegensatz zur Maske können Sie eine Inhaltsblock-Definition nicht einfach im Assistenten deaktivieren. Wenn bestimmte Elemente nicht benötigt werden, entfernen Sie sie aus Ihrer Konfiguration oder richten Sie Benutzerrechte ein, um sie vor bestimmten Backend-Benutzergruppen zu verbergen.
Schlussfolgerung
Unabhängig davon, ob Sie sich für die automatische Migration entscheiden oder lieber manuell vorgehen, ist der Wechsel von Mask zu Content Blocks ein kluger Schritt, um langfristige Stabilität zu gewährleisten. Sie erhalten eine gut strukturierte Umgebung, die einfacher zu pflegen und weniger konfliktanfällig ist, und die perfekt auf die zukünftige Ausrichtung von TYPO3 abgestimmt ist.
Nochmals ein großes Lob an das Team Content Blocks, das all dies möglich gemacht hat. Wenn Sie einzigartige Szenarien oder fortgeschrittene Anwendungsfälle haben, zögern Sie nicht, diese mit der TYPO3-Community zu teilen - gemeinsam machen wir die Content-Erstellung besser als je zuvor!
Viel Spaß bei der Umstellung auf Content Blocks!
Sanjay Chauhan
CTO - T3Planet & NITSANSanjay Chauhan, Mitbegründer von NITSAN (Preisgekrönte TYPO3 Agentur) und Pionier von T3Planet, dem ersten TYPO3 Shop weltweit.
Ein wahrer TYPO3-Fanatiker seit 2010.
Mit meinem umfangreichen technischen Wissen und…
More From Author