FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
Erinnern Sie sich noch an die Zeiten, als Sie sich durch sys_template-Datensätze wühlen, TypoScript manuell importieren und mit mehreren @import-Anweisungen jonglieren mussten? Mit TYPO3 v13 hat das Kernteam Site Sets eingeführt, ein neues Konzept, das die Konfiguration auf Site-Ebene vereinheitlichen und modernisieren soll. Wenn Sie Redakteur oder Integrator/Entwickler sind, werden Sie begeistert sein, wie Site Sets die Einrichtung vereinfachen, das Abhängigkeitsmanagement verbessern und saubere, besser wartbare TYPO3-Projekte schaffen.
In diesem Artikel werden wir die Grundlagen von Site Sets erforschen, wie sie hinter den Kulissen funktionieren und warum sie mehr sind als nur eine schicke neue Möglichkeit, TypoScript einzubinden. Wir werden auch Beispiele für jeden Schritt liefern: von der Erstellung eines benutzerdefinierten Sets, der Definition Ihrer Einstellungen und dem automatischen Laden von TypoScript bis hin zur abschließenden Konfiguration mit minimalem Datenbank-Wirrwarr.
Was sind Site Sets?
Site Sets sind zusammensetzbare Teile der Konfiguration, die in TYPO3 v13 (ab Version 13.1) eingeführt wurden. Sie kapseln verschiedene Teile der Konfiguration einer Site - TYPOScript, TSconfig, Einstellungsdefinitionen, referenzfähige Inhaltsblöcke und mehr - in einer einzigen logischen Einheit.
Anstatt die Konfigurationen über statische Includes, ext_localconf.php oder sys_template-Datensätze zu verstreuen, können Sie mit Site Sets alles ordentlich bündeln:
- Sie können diese Konfigurationen ganz einfach auf mehrere TYPO3 Sites anwenden.
- Wiederverwendung der gleichen Sets in verschiedenen Projekten oder verschiedenen Untergruppen eines einzelnen Projekts.
- Abhängigkeiten werden automatisch gehandhabt, so dass Sie mehrere Site Sets übereinander legen können, ohne sich Gedanken über Konflikte bei der Ladereihenfolge zu machen.
Das Warum: Auf Wiedersehen, althergebrachte Methoden
In früheren TYPO3 Versionen war das Hinzufügen neuer Funktionen oft mit mehreren Schritten verbunden: Erstellen von statischen TypoScript-Includes, deren Referenzierung im Seiten- oder Site-Template oder der manuelle Aufruf von @import in TypoScript-Dateien. Diese Vorgehensweise konnte unübersichtlich werden, wenn mehrere Extensions beteiligt waren, was zu Verwirrung in der Ladereihenfolge und Doppelarbeit führte.
Mit Site Sets:
- Kein statisches TypoScript mehr: Die klassische Art, sys_template-Datensätze zu speichern, entfällt für viele gängige Szenarien.
- Kein manueller @import mehr: Die Ladereihenfolge wird von den Sets selbst verwaltet, so dass Sie dies nicht mehr von Hand tun müssen.
- Keine globale TSconfig mehr: Die Seiten-TSconfig kann jetzt pro Site geliefert werden, was die Einrichtung mehrerer Sites vereinfacht.
1. Saubere Konfiguration
Vorbei sind die Zeiten, in denen TypoScript in sys_template-Datensätzen gespeichert wurde und man sich mit @import Komplexitäten herumschlagen musste. Site Sets vereinheitlichen alles in klar definierten Verzeichnissen.
2. Weniger Unordnung in der Datenbank
Einstellungen, die früher an verschiedenen Stellen gespeichert wurden, sind jetzt in dateibasierten YAML-Konfigurationen zusammengefasst, was die Versionskontrolle erleichtert.
3. Automatische Sortierung und Deduplizierung
Wenn mehrere Sets denselben TypoScript-Schnipsel benötigen, werden Abhängigkeiten von TYPO3 intelligent geschichtet - keine widersprüchlichen oder doppelten Codeblöcke mehr.
4. Editor-freundlich
Der neue Site Settings Editor in TYPO3 (eingeführt mit Version 13.3) ermöglicht es Redakteuren, Einstellungen über das Backend vorzunehmen, ohne in YAML-Dateien oder die Datenbank eintauchen zu müssen.
# EXT:your_extension/Configuration/Sets/YourSet/config.yaml
name: your-vendor/your-set
label: Your Set
# Provide references to other sets you want to include
dependencies:
- namespace/teaser
- namespace/slider
- namespace/myelement
- name: Ein eindeutiger Bezeichner für Ihr Set.
- Bezeichnung: Der von Menschen lesbare Name für Ihr Set.
- Abhängigkeiten: Andere Sets, von denen Ihr Set abhängt. TYPO3 lädt diese zuerst, um sicherzustellen, dass die gesamte Konfiguration in der richtigen Reihenfolge verfügbar ist.
2. settings.definitions.yaml - Definieren von editierbaren Einstellungen
Wenn Ihr Set vom Benutzer editierbare Einstellungen enthalten muss (z. B. die Standardanzahl der Elemente in einem Karussell), können Sie diese in settings.definitions.yaml deklarieren.
# EXT:your_extension/Configuration/Sets/YourSet/settings.definitions.yaml
settings:
foo.bar.baz:
label: 'Your example set settings'
description: 'You need to add description'
type: int
default: 5
3. settings.yaml - Konfigurieren von Abhängigkeiten oder Subsets
Wenn Ihr Set von anderen Sets abhängt oder Sie deren Standardeinstellungen überschreiben möchten, legen Sie diese Überschreibungen in settings.yaml ab.
# EXT:your_extension/Configuration/Sets/YourSet/settings.yaml
styles:
content:
defaultHeaderType: 1
Wenn Sie die Einstellungen auf diese Weise organisieren, bleibt Ihr Set flexibel. Andere Erweiterungen oder Projekte können Ihr Set später übernehmen, ohne alles an mehreren Stellen neu definieren zu müssen.
Schritt für Schritt: Erstellen und Anwenden eines Site Sets
1. Definieren Sie Ihr Set (config.yaml)
Jedes Site-Set beginnt mit einer config.yaml-Datei. Hier ist ein einfaches Beispiel:
# EXT:your_extension/Configuration/Sets/YourSet/config.yaml
name: your-vendor/your-set
label: 'Your Set'
dependencies:
- namespace/teaser
- namespace/myelement
- name: Identifiziert Ihr Set eindeutig.
- Bezeichnung: Ein beschreibender Name, der im TYPO3 Backend sichtbar ist.
- Abhängigkeiten: Andere Sets, die zuerst geladen werden müssen, um die richtige Ladereihenfolge zu gewährleisten.
2. Einstellungsdefinitionen hinzufügen (settings.definitions.yaml)
Wenn Ihr Site Set konfigurierbare Optionen bietet (z. B. eine maximale Anzahl von Schiebereglern), definieren Sie diese hier. Dadurch wird sichergestellt, dass Ihre Einstellungen Bezeichnungen, Beschreibungen und vordefinierte Datentypen haben.
# EXT:your_extension/Configuration/Sets/YourSet/settings.definitions.yaml
settings:
yourVendor.yourSet.maxSliderItems:
label: 'Maximum Slider Items'
description: 'Sets how many items can appear in the slider'
type: int
default: 5
yourVendor.yourSet.enableAdvancedMode:
label: 'Enable Advanced Mode'
description: 'Toggles additional features for power users'
type: bool
default: false
3. Einstellungen außer Kraft setzen (settings.yaml)
Wenn Sie die Standardeinstellungen überschreiben müssen - entweder Ihre eigenen oder die einer Abhängigkeit - platzieren Sie diese Überschreibungen in settings.yaml:
# EXT:your_extension/Configuration/Sets/YourSet/settings.yaml
yourVendor.yourSet.maxSliderItems: 3
yourVendor.yourSet.enableAdvancedMode: true
4. Automatisches Laden von TypoScript
Wenn Sie setup.typoscript oder constants.typoscript neben config.yaml platzieren, werden diese automatisch von TYPO3 eingebunden. Kein Herumfummeln mehr mit "Include Static TypoScript" im Template-Modul oder @import-Anweisungen.
# EXT:your_extension/Configuration/Sets/YourSet/setup.typoscript
page = PAGE
page.10 = TEXT
page.10.value = This is loaded via My Site Set
5. Automatisches Laden von Page TSconfig
Ebenso wird page.tsconfig im gleichen Ordner automatisch auf alle Seiten innerhalb einer Site angewendet, die dieses Set verwendet:
# EXT:your_extension/Configuration/Sets/YourSet/page.tsconfig
TCEFORM.tt_content {
imageorient.disabled = 1
}
# config/sites/your-site/config.yaml
base: 'https://your-domain.com/'
rootPageId: 1
dependencies:
- your-vendor/your-set
Automatisches Laden von TypoScript
Wenn Sie die Dateien setup.typoscript oder constants.typoscript im selben Verzeichnis wie config.yaml ablegen, werden sie von TYPO3 automatisch geladen. Dies bedeutet:
EXT:your_extension/Configuration/Sets/YourSet/
│ ├─ config.yaml
│ ├─ setup.typoscript # Auto-loaded as TypoScript Setup
│ ├─ constants.typoscript # Auto-loaded as TypoScript Constants
│ └─ page.tsconfig # Auto-loaded as Page TSconfig
Durch Verwendung dieser Struktur können Sie @import-Anweisungen oder die Methode "Include Static TypoScript" im sys_template-Datensatz vollständig umgehen. Das Site-Set-System sorgt für Ordnung und Deduplizierung, so dass Konflikte vermieden werden, wenn mehrere Sets das gleiche Snippet laden.
Automatische Seite TSconfig
Ähnlich wie bei TypoScript ist Page TSconfig jetzt site-scoped. Indem Sie einfach eine page.tsconfig-Datei neben Ihrer config.yaml platzieren, erben alle Seiten, die zu dieser Site gehören, diese TSconfig-Einstellungen. Dies erlaubt eine feinkörnige Kontrolle und vermeidet die Notwendigkeit einer globalen TSconfig-Einbindung oder einer manuellen Registrierung in ext_localconf.php.
Neues Backend-Modul für Website-Einstellungen in TYPO3 v13.3
Mit TYPO3 v13.3 wurde ein neues Modul für den Site Settings Editor eingeführt. Redakteure und Integratoren können nun die Einstellungen pro Site direkt aus dem TYPO3 Backend verwalten, anstatt YAML Dateien manuell zu bearbeiten.
- Zentralisierte Verwaltung: Alle Site-spezifischen Einstellungen sind unter "Site Management > Settings" zugänglich.
- Kategorie Organisation: Einstellungen können in Kategorien gruppiert werden, die in settings.definitions.yaml deklariert werden.
- Minimaler Change Footprint: Es werden nur geänderte Werte gespeichert, so dass Ihre YAML Konfigurationen sauber bleiben.
Wenn Sie z.B. ein benutzerdefiniertes Set mit der folgenden settings.definitions.yaml haben:
# EXT:my_extension/Configuration/Sets/MySet/settings.definitions.yaml
categories:
myCategory:
label: 'My Category'
settings:
my.example.setting:
label: 'My example setting'
category: myCategory
type: string
default: ''
my.seoRelevantSetting:
label: 'My SEO relevant setting'
category: seo
type: int
default: 5
Im Editor für die Website-Einstellungen finden Sie einen neuen Abschnitt mit der Bezeichnung "Meine Kategorie", in dem Sie den Standardwert von my.example.setting außer Kraft setzen können .
Erweiterte Anwendungsfälle
- Extensions im Stil eines Frameworks
Eine Extension kann mit mehreren Sets (z. B. "basic", "pro", "enterprise") geliefert werden, die jeweils unterschiedliche Konfigurationen aufweisen. Site-Administratoren wählen aus, welches Set der Komplexität ihrer Site entspricht. - Konsistenz für mehrere Sites
Wenn Sie mehrere Sites mit gemeinsamen Funktionen betreiben, können Sie sicherstellen, dass sie alle dasselbe Basisset erben, während Sie site-spezifische Anpassungen in separaten settings.yaml oder sogar über den Site Settings Editor vornehmen. - Schrittweise Migration
Bei bestehenden TYPO3 Installationen können Sie ältere TypoScript-Sets nach und nach migrieren. Beginnen Sie mit einem einzigen Set, verschieben Sie Ihre bestehenden @import oder statischen Includes in setup.typoscript und constants.typoscript und entfernen Sie alte Referenzen aus sys_template , sobald diese stabil sind.
Praktische Vorteile der Einbindung von TYPO3 v13-Sitesets
- Zeitersparnis: Keine verstreuten Vorlagen oder manuellen Importanweisungen mehr.
- Konsistenz: Alle Site-Konfigurationen folgen einer einheitlichen Struktur, was die Verwaltung von Multi-Site-Setups erleichtert.
- Weniger globale Überschneidungen: Seiten-TSconfig, TypoScript und Einstellungen werden genau auf den Bedarf abgestimmt (d.h. pro Site), wodurch Konflikte minimiert werden.
- Befähigung des Editors: Der Editor für Website-Einstellungen bietet eine übersichtliche Oberfläche, die den Aufwand für Entwickler und Fehler reduziert.
- Zukunftssicher: Der TYPO3 Kern ist darauf ausgerichtet, Site Sets weiter zu optimieren, so dass Ihre Projekte mit den kommenden TYPO3-Funktionen und Best Practices kompatibel bleiben.
Wichtigste Erkenntnisse
- Saubere Konfiguration: Die Bündelung von TypoScript, TSconfig und Einstellungen in Sets reduziert Unordnung und Verwirrung.
- Verwaltung von Abhängigkeiten: Die Reihenfolge des Ladens wird automatisch gehandhabt, wodurch Duplizierung und Konflikte vermieden werden.
- Editor-freundlich: Dank des Site-Settings-Editors können benutzerdefinierte Einstellungen auch von Nicht-Entwicklern leicht angepasst werden.
- Zukunftssicher: Die offizielle TYPO3-Roadmap zeigt kontinuierliche Verbesserungen auf, so dass Sie mit der Einführung von Site Sets für zukünftige Verbesserungen in v13 und darüber hinaus gerüstet sind.
Schlussfolgerung
Die Einführung von Site Sets in TYPO3 stellt einen großen Fortschritt in der Art und Weise dar, wie wir Site-Konfigurationen organisieren und verwalten. Durch die Bündelung von TypoScript-, TSconfig- und Extension-Einstellungen in in sich geschlossenen Sets bietet die Plattform ein intuitiveres, skalierbares und konfliktfreies System. Egal ob Sie als Redakteur konsistente, gut dokumentierte Funktionen wünschen oder als Entwickler Wert auf eine wartbare Architektur legen, Site Sets bieten eine moderne Lösung, die sich mit zukünftigen TYPO3 Versionen weiterentwickelt.
Wenn Sie ein Upgrade auf TYPO3 v13 durchführen, sollte die Erforschung von Site Sets eine Ihrer obersten Prioritäten sein. Nutzen Sie diesen neuen Ansatz, reduzieren Sie den manuellen Aufwand und bereiten Sie sich auf noch mehr Funktionen in den kommenden TYPO3 Sprint-Releases vor. Viel Spaß beim Programmieren und Erstellen von Websites!
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