Wie man benutzerdefinierte Elemente in TYPO3 erstellt

Ein benutzerdefiniertes TYPO3 Content Element hilft Entwicklern dabei, wiederverwendbare Inhaltsblöcke zu erstellen, die exakt zum Design, zur Struktur und zu den Anforderungen der Redakteure eines Projekts passen.

Wie man benutzerdefinierte Elemente in TYPO3 erstellt

Anstatt sich ausschließlich auf die standardmäßigen TYPO3 Content Elements zu verlassen, können Teams benutzerdefinierte Elemente für Bereiche wie CTA-Boxen, Kartenraster, Slider, Code-Blöcke, Produkthighlights oder strukturierte Landingpage-Komponenten erstellen.

Um ein benutzerdefiniertes Content Element in TYPO3 zu erstellen, definieren Sie einen neuen CType, konfigurieren die erforderlichen TCA-Felder, fügen das Element zum Assistenten „Neues Inhaltselement“ hinzu, richten das Frontend-Rendering mit TypoScript und einem Fluid Template ein und können optional eine Backend-Vorschau oder einen DataProcessor für eine bessere Redakteurs-Erfahrung hinzufügen.

Was ist ein benutzerdefiniertes Content Element in TYPO3?

Ein benutzerdefiniertes TYPO3 Content Element ist ein wiederverwendbarer Inhaltsblock, der für eine bestimmte Website-Anforderung entwickelt wurde. Es kann benutzerdefinierte Felder, Backend-Einstellungen und ein Fluid Template für die Frontend-Ausgabe enthalten.

Redakteure sehen es im TYPO3 Backend unter Neues Inhaltselement erstellen, sobald es zum Assistenten für Inhaltselemente hinzugefügt wurde.

Typ

Bedeutung

Content Element

Ein wiederverwendbarer Seitenblock, beispielsweise ein CTA, eine Karte oder ein Testimonial

Plugin

Eine dynamische Funktion, beispielsweise Suche, Filter, Formulare oder Listen

Template

Steuert, wie das Element im Frontend dargestellt wird

Extension

Ein TYPO3-Paket, das Elemente, Plugins, Templates und Logik enthalten kann

Benutzerdefinierte Content Elements helfen dabei, Inhalte strukturiert, wiederverwendbar und für Redakteure leichter verwaltbar zu halten.

Wie erstellt man ein benutzerdefiniertes TYPO3 Content Element?

Ein benutzerdefiniertes TYPO3-Inhaltselement erstellen

Um ein benutzerdefiniertes TYPO3 Content Element zu erstellen, registrieren Sie einen neuen CType, konfigurieren die erforderlichen TCA-Felder, fügen das Element zum Assistenten „Neues Inhaltselement“ hinzu und definieren die Frontend-Ausgabe mit TypoScript und einem Fluid Template.

Sie können außerdem eine Backend-Vorschau für Redakteure hinzufügen und einen DataProcessor verwenden, wenn das Element vor dem Rendering eine zusätzliche Datenverarbeitung benötigt.

Benutzerdefinierte TYPO3 Elemente vs. Core-Elemente

Benutzerdefinierte TYPO3 Elemente vs. Core-Elemente

TYPO3-Core-Elemente sind integrierte Content Elements, die häufige Anforderungen wie Text, Bilder, Medien, Tabellen und Standard-Layouts abdecken. Ein benutzerdefiniertes TYPO3 Content Element wird erstellt, wenn ein Projekt ein bestimmtes Layout, eine individuelle Feldstruktur oder eine Frontend-Ausgabe benötigt, die Core-Elemente nicht bereitstellen können.

Faktor

TYPO3 Core Element

TYPO3 benutzerdefiniertes Element

Zweck

Standardmäßige Inhaltsanforderungen

Projektspezifische Inhalte

Kontrolle für Redakteure

Grundlegend

Benutzerdefinierte Felder und Layout

Frontend-Ausgabe

Vordefiniert

Vollständig kontrollierbar

Beste Verwendung

Text, Bild, Medien

CTA-Blöcke, Karten, Slider, Produktblöcke

Benutzerdefinierte Elemente sind besonders hilfreich, wenn Redakteure wiederholbare, strukturierte Inhaltsblöcke benötigen, anstatt dasselbe Layout auf jeder Seite manuell erstellen zu müssen.

Wann sollten Sie ein benutzerdefiniertes TYPO3 Content Element erstellen?

Erstellen Sie ein benutzerdefiniertes TYPO3 Content Element, wenn die Website einen wiederverwendbaren Bereich mit festgelegtem Design, klar definierten Feldern und kontrollierter Frontend-Ausgabe benötigt.

Ein benutzerdefiniertes Content Element ist sinnvoll, wenn:

  • Sie wiederverwendbare Markenbereiche benötigen
  • Redakteure strukturierte Felder benötigen
  • Das Design eine strenge Kontrolle über das Frontend erfordert
  • Sie unnötige Abhängigkeiten reduzieren möchten
  • Sie eine bessere Inhaltskonsistenz über mehrere Seiten hinweg benötigen
  • Sie eine benutzerdefinierte Backend-Vorschau für Redakteure wünschen

Erstellen Sie kein benutzerdefiniertes Content Element, wenn:

  • Ein TYPO3-Core-Element den Bedarf bereits erfüllt
  • Eine einfache Fluid Template-Überschreibung ausreichend ist
  • Ein Plugin besser für dynamische Logik, Listen, Formulare, Filter oder komplexe Workflows geeignet ist

Core CType, Content Blocks oder Extension: Welche Methode sollten Sie verwenden?

TYPO3 bietet verschiedene Möglichkeiten, benutzerdefinierte Content Elements zu erstellen. Die richtige Methode hängt davon ab, wie viel Kontrolle, Flexibilität und Logik das Projekt benötigt.

Methode

Am besten geeignet für

Vorteile

Zu beachten

Core CType-Methode

Vollständige Entwicklerkontrolle

Stabil, flexibel, Core-freundlich

Mehr manuelle Einrichtung

Content Blocks

Schnellere strukturierte Elemente

Einfachere Konfiguration, moderner Workflow

Benötigt Content Blocks Extension

Plugin / Extbase Extension

Dynamische Geschäftslogik

Ideal für Formulare, Listen, Workflows

Komplexere Umsetzung

Drittanbieter-Tools

Schnelle Einrichtung

Schnell für einfache Projekte

Abhängigkeiten und Upgrade-Risiken

Verwenden Sie die Core CType-Methode, wenn das Projekt vollständige Kontrolle über Felder, Rendering, Backend-Vorschau und langfristige Wartbarkeit benötigt.

Verwenden Sie Content Blocks, wenn Sie eine schnellere Möglichkeit benötigen, strukturierte Content Elements mit weniger manueller Konfiguration zu erstellen.

Verwenden Sie ein Plugin oder eine Extbase Extension, wenn die Funktion dynamische Logik, Datensätze, Filter, Formulare, Suche oder individuelle Workflows benötigt.

Voraussetzungen vor der Erstellung eines benutzerdefinierten TYPO3 Elements

Bevor Sie ein benutzerdefiniertes TYPO3 Content Element erstellen, stellen Sie sicher, dass das Projekt über die richtige Umgebung verfügt.

Sie sollten haben:

  • Ein TYPO3 v12-, v13- oder v14-Projekt
  • Ein Sitepackage oder eine benutzerdefinierte Extension
  • Ein Composer-basiertes TYPO3-Setup
  • fluid_styled_content installiert und konfiguriert
  • Zugriff auf TCA, PageTSconfig, TypoScript und Fluid Templates
  • Grundkenntnisse in PHP und Fluid
  • Eine lokale oder Staging-Umgebung für sichere Tests

Erstellen oder testen Sie benutzerdefinierte Content Elements nicht direkt auf einer Live-Website. Verwenden Sie zunächst eine lokale oder Staging-Umgebung und führen Sie die Bereitstellung erst nach Tests von Backend, Frontend, Cache-Verhalten und Redakteurs-Workflow durch.

Dateistruktur für ein benutzerdefiniertes TYPO3 Content Element

Eine klare TYPO3 benutzerdefinierte Element-Dateistruktur macht die Einrichtung einfacher zu entwickeln, zu testen und zu warten. Die meisten benutzerdefinierten Content Elements verwenden Dateien für CType-Registrierung, TCA-Felder, Wizard-Konfiguration, Frontend-Rendering und optionale Backend-Vorschau-Logik.

Datei / Ordner

Zweck

Configuration/TCA/Overrides/tt_content.php

CType und Felder registrieren

ext_tables.sql

Datenbankfelder hinzufügen

Configuration/PageTSconfig/

Wizard-Konfiguration hinzufügen

Configuration/TypoScript/setup.typoscript

Frontend-Rendering definieren

Resources/Private/Templates/

Fluid Template hinzufügen

Classes/DataProcessing/

Optionalen DataProcessor hinzufügen

Classes/Hooks/ oder Events

Backend-Vorschau oder Rendering-Logik hinzufügen

Diese Struktur hält das benutzerdefinierte Element organisiert und erleichtert spätere Aktualisierungen.

Welche Felder und Faktoren gehören zu einem TYPO3 Content Type?

Ein TYPO3 Content Type enthält normalerweise die Einstellungen, die erforderlich sind, um das Element im Backend anzuzeigen, seine Felder zu speichern und es im Frontend darzustellen.

Zu den wichtigsten Bestandteilen gehören:

  • CType-Key zur Identifizierung des benutzerdefinierten Elements
  • Datenbankfelder zum Speichern benutzerdefinierter Werte
  • TCA-Konfiguration für die Einrichtung der Backend-Felder
  • Wizard-Eintrag zum Hinzufügen des Elements im Backend
  • Backend-Vorschau für die Sichtbarkeit durch Redakteure
  • TypoScript-Rendering für die Frontend-Ausgabe
  • Fluid Template für das Layout des Elements
  • Optionaler DataProcessor für zusätzliche Datenverarbeitung
  • Sprachlabels für die Namen der Backend-Felder
  • Icon-Identifier für das Icon des Content Elements

Diese Bestandteile arbeiten zusammen, um das benutzerdefinierte Content Element für Redakteure nutzbar zu machen und eine korrekte Darstellung auf der Website sicherzustellen.

Schritt für Schritt: Erstellen eines benutzerdefinierten TYPO3 Content Elements mit Core CType

Diese Methode gibt Entwicklern vollständige Kontrolle über die Einrichtung des Content Elements, einschließlich Backend-Feldern, Redakteurs-Vorschau, Frontend-Rendering und Datenverarbeitung. Sie folgt dem klassischen TYPO3 Core CType-Ansatz mit TCA, PageTSconfig, TypoScript und Fluid Template-Rendering.

1. Den CType-Key definieren

Beginnen Sie mit der Definition eines klaren und eindeutigen CType-Keys für das benutzerdefinierte Content Element. Dieser Key identifiziert das Element innerhalb von TYPO3.

Verwenden Sie einen kurzen, lesbaren und projektspezifischen Key.

Beispiel:

myextension_newcontentelement

Bewährte Verfahren:

  • Verwenden Sie Kleinbuchstaben
  • Vermeiden Sie Leerzeichen und Sonderzeichen
  • Stellen Sie dem Key den Namen Ihrer Extension voran
  • Halten Sie den Key aussagekräftig und leicht erkennbar

2. Das Icon registrieren

Benutzerdefinierte Elemente in TYPO3

Registrieren Sie ein Icon für das benutzerdefinierte Content Element, damit Redakteure es im TYPO3-Backend leichter erkennen können.

// typo3conf/ext/myextension/ext_localconf.php

$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
   \TYPO3\CMS\Core\Imaging\IconRegistry::class
);

$iconRegistry->registerIcon(
   'my-icon-identifier',
   \TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class,
   ['name' => 'external-link-square']
);

Der Icon-Identifier sollte mit dem Identifier übereinstimmen, der bei der Registrierung des Content Elements verwendet wird.

3. Das Element zum Type-Dropdown hinzufügen

Dropdown-Menü für benutzerdefinierte TYPO3-Elemente

Als Nächstes fügen Sie das benutzerdefinierte Content Element zum TYPO3 CType-Dropdown hinzu. Dadurch wird das Element im Backend als auswählbarer Content-Typ verfügbar.

// typo3conf/ext/myextension/Configuration/TCA/Overrides/tt_content.php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
   'tt_content',
   'CType',
   [
       'LLL:EXT:myextension/Resources/Private/Language/Tca.xlf:myextension_newcontentelement',
       'myextension_newcontentelement',
       'my-icon-identifier',
   ],
   'header',
   'after'
);

Dieser Schritt registriert das Element lediglich als Content-Typ. Die Felder, das Rendering und der Wizard-Eintrag müssen weiterhin separat konfiguriert werden.

4. Datenbankfelder hinzufügen

Wenn das benutzerdefinierte Content Element ein eigenes Feld benötigt, fügen Sie es zu ext_tables.sql hinzu.

Beispiel:

CREATE TABLE tt_content (
  code_language text DEFAULT '' NOT NULL
);

Verwenden Sie benutzerdefinierte Datenbankfelder nur dann, wenn die standardmäßigen tt_content-Felder nicht ausreichen.

5. TCA-Felder konfigurieren

TCA steuert, wie Felder im TYPO3-Backend angezeigt werden und sich verhalten.

Beispiel:

$additionalColumns = [
   'code_language' => [
       'label' => 'LLL:EXT:codeblock/Resources/Private/Language/locallang_db.xlf:tt_content.code_language',
       'config' => [
           'type' => 'select',
           'default' => '',
           'itemsProcFunc' => 'NITSAN\\Codeblock\\DataProvider\\CodeLanguages->getAll',
           'renderType' => 'selectSingle',
       ],
   ],
];

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
   'tt_content',
   $additionalColumns
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
   'tt_content',
   'code_language',
   'codeblock',
   'before:bodytext'
);

Für TYPO3 v13.3 und neuer sollten Sie vermeiden, unnötige Systemfelder für tt_content Content Types zu wiederholen. TYPO3 verwaltet bereits mehrere Standardfelder automatisch.

6. Das Element zum Assistenten „Neues Inhaltselement“ hinzufügen

TYPO3-Assistent für Inhaltselemente – Seite

Um Redakteuren die Auswahl des Elements über den Assistenten „Neues Inhaltselement“ zu ermöglichen, fügen Sie PageTSconfig hinzu.

mod.wizards.newContentElement {
  wizardItems {
      common.elements.codeblock {
          title = LLL:EXT:codeblock/Resources/Private/Language/locallang_db.xlf:tt_content.CType
          description = LLL:EXT:codeblock/Resources/Private/Language/locallang_db.xlf:tt_content.wizard.description
          tt_content_defValues.CType = codeblock
          iconIdentifier = content-codeblock
      }
      common.show := addToList(codeblock)
  }
}

Dadurch wird das benutzerdefinierte Content Element für Redakteure leichter auffindbar und nutzbar.

7. Backend-Vorschau hinzufügen

Backend-Vorschau hinzufügen

Eine Backend-Vorschau ist optional, hilft Redakteuren jedoch dabei, den Inhalt eines benutzerdefinierten Content Elements zu verstehen, ohne es öffnen zu müssen.

Es gibt zwei gängige Möglichkeiten, eine Vorschau hinzuzufügen:

Fluid Preview

Verwenden Sie ein Fluid Preview Template über PageTSconfig:

mod.web_layout.tt_content.preview.codeblock = EXT:codeblock/Resources/Private/Templates/Preview/Codeblock.html

Dies ist nützlich für einfache Vorschauen, die auf gespeicherten Feldwerten basieren.

Benutzerdefinierter Preview Renderer

Für mehr Kontrolle können Sie einen benutzerdefinierten Preview Renderer verwenden.

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['content-codeblock']
   = \Vendor\YourExtensionKey\Hooks\PageLayoutView\NewContentElementPreviewRenderer::class;

Verwenden Sie einen benutzerdefinierten Renderer, wenn die Vorschau spezielle Logik, formatierte Ausgaben oder eine individuelle Backend-Darstellung benötigt.

8. Einen DataProcessor hinzufügen

Ein DataProcessor ist hilfreich, wenn das Content Element vor dem Rendering eine zusätzliche Datenverarbeitung benötigt.

Verwenden Sie ihn für:

  • Dateien
  • Verknüpfte Datensätze
  • Externe Daten
  • Array-Transformation
  • Syntax-Highlighting
  • Verarbeitung benutzerdefinierter Felder

Beispiel:

public function process(
   ContentObjectRenderer $cObj,
   array $contentObjectConfiguration,
   array $processorConfiguration,
   array $processedData
) {
   $fieldName = $processorConfiguration['field'];
   $targetVariableName = $cObj->stdWrapValue('as', $processorConfiguration, 'bodytext_formatted');

   $highlight = GeneralUtility::makeInstance(Highlighter::class);

   if (!$processedData['data']['code_language']) {
       $languages = $highlight->listLanguages();
       $highlight->setAutodetectLanguages($languages);
       $highlighted = $highlight->highlightAuto($processedData['data'][$fieldName]);
   } else {
       $highlighted = $highlight->highlight(
           $processedData['data']['code_language'],
           $processedData['data'][$fieldName]
       );
   }

   $processedData[$targetVariableName]['code'] = $highlighted->value;
   $processedData[$targetVariableName]['language'] = $highlighted->language;

   return $processedData;
}

Ein DataProcessor hält die Logik außerhalb des Fluid Templates und sorgt für ein saubereres Rendering.

9. TypoScript-Konfiguration hinzufügen

TYPO3 benötigt eine TypoScript-Konfiguration, um das benutzerdefinierte Content Element im Frontend darzustellen.

tt_content.codeblock =< lib.contentElement
tt_content.codeblock {
  templateName = Codeblock
  templateRootPaths.0 = EXT:codeblock/Resources/Private/Templates

  dataProcessing.1567071612 = NITSAN\Codeblock\DataProcessing\HighlightProcessor
  dataProcessing.1567071612 {
      field = bodytext
      as = bodytext_formatted
  }
}

Dies verbindet den benutzerdefinierten CType mit seinem Fluid Template und dem optionalen DataProcessor.

10. Fluid Template hinzufügen

Erstellen Sie das Fluid Template, das die Frontend-Ausgabe steuert.

Beispiel:

<f:layout name="Default" />

<f:section name="Main">
   <pre>
       <code class="hljs {bodytext_formatted.language}">
           {bodytext_formatted.code -> f:format.raw()}
       </code>
   </pre>
</f:section>

Verwenden Sie eine rohe Ausgabe nur dann, wenn der Inhalt vertrauenswürdig oder ordnungsgemäß bereinigt wurde. Bei normalen Redakteurs-Eingaben sollte die Ausgabe standardmäßig escaped werden, um Sicherheitsprobleme zu vermeiden.

Moderne Option: Benutzerdefinierte Elemente mit TYPO3 Content Blocks erstellen

Kurze Antwort: Content Blocks sind eine vereinfachte Möglichkeit, strukturierte Content Elements in TYPO3 zu definieren.

Anstatt jeden Bestandteil manuell mit TCA, PageTSconfig, TypoScript und Backend-Konfiguration einzurichten, ermöglichen Content Blocks Entwicklern, Content Elements über eine kompaktere Struktur zu definieren. Ein typischer Content Block enthält eine config.yaml-Datei, ein Fluid Template, optionale Assets und Sprachlabels.

Content Blocks sind besonders geeignet, wenn Sie schnell strukturierte Elemente wie Hero-Bereiche, CTA-Blöcke, Kartenlayouts, Slider, Teaser oder wiederverwendbare Landingpage-Abschnitte erstellen möchten. Sie sind besonders hilfreich in TYPO3 v13- und v14-Projekten, bei denen Teams einen saubereren und moderneren Workflow für benutzerdefinierte Content Elements wünschen.

Verwenden Sie die Core CType-Methode, wenn das Projekt vollständige Kontrolle, komplexe TCA-Konfiguration, individuelle Verarbeitung oder langfristige Flexibilität auf niedriger Ebene benötigt. Verwenden Sie Content Blocks, wenn das Ziel darin besteht, strukturierte Content Elements schneller mit weniger manueller Konfiguration zu erstellen.

TYPO3 v14 Hinweise: Visual Editor und Redakteurs-Erfahrung

TYPO3 v14 legt einen stärkeren Fokus auf die Redakteurs-Erfahrung. Der Visual Editor unterstützt einfachen Text und Rich-Text-Bearbeitung, das Verschieben von Inhalten per Drag & Drop, hervorgehobene bearbeitbare Felder und eine berechtigungsbasierte Bearbeitung über TYPO3-APIs.

Dies ist für benutzerdefinierte Content Elements wichtig, da Templates nicht nur korrekt im Frontend dargestellt werden sollten. Sie müssen auch für Redakteure einfach verständlich und verwaltbar sein.

Bei der Erstellung benutzerdefinierter Elemente für TYPO3 v14 sollten Sie prüfen:

  • Einfache Textfelder lassen sich leicht bearbeiten
  • Rich-Text-Felder werden sicher und korrekt dargestellt
  • Bearbeitbare Felder sind im Bearbeitungsworkflow eindeutig erkennbar
  • Content Elements können verschoben werden, ohne das Layout zu beschädigen
  • Templates sind für eine redakteursfreundliche Ausgabe strukturiert
  • Backend-Berechtigungen und Feldzugriffe funktionieren wie erwartet

Ein gutes benutzerdefiniertes Content Element sollte Redakteuren ermöglichen, Inhalte zu aktualisieren, ohne erraten zu müssen, wie das Layout funktioniert.

Best Practices für SEO, Barrierefreiheit und Performance

Benutzerdefinierte TYPO3 Content Elements sollten für Benutzer, Redakteure, Suchmaschinen und eine langfristige Wartung entwickelt werden.

SEO Best Practices

  • Eine klare semantische Überschriftenstruktur beibehalten
  • Doppelte H1-Tags innerhalb benutzerdefinierter Elemente vermeiden
  • Klare und aussagekräftige Link-Bezeichnungen verwenden
  • Wichtige Texte sichtbar im HTML ausgeben
  • Strukturierte Inhalte anstelle von reinen Layout-Inhalten unterstützen
  • Wichtige Inhalte nicht ausschließlich hinter JavaScript-basierter Ausgabe verstecken

Best Practices für Barrierefreiheit

  • Semantische HTML-Elemente verwenden
  • Alt-Text-Felder hinzufügen, wenn Bilder verwendet werden
  • Barrierefreie Buttons und Links verwenden
  • Tastaturnavigation funktional halten
  • Rein visuelle Inhalte ohne Textalternativen vermeiden
  • Kontraste, Fokuszustände und gut lesbare Abstände prüfen

Performance Best Practices

  • CSS und JavaScript nur laden, wenn das Element verwendet wird
  • Unnötige Frontend-Assets vermeiden
  • Optimierte Bilder verwenden
  • TYPO3-Caching korrekt einsetzen
  • DataProcessor-Logik leichtgewichtig halten
  • Keine umfangreichen externen Aufrufe während des Renderings durchführen

Ein benutzerdefiniertes Content Element sollte nicht nur korrekt aussehen. Es sollte schnell laden, barrierefrei bleiben, SEO unterstützen und während zukünftiger TYPO3 updates einfach wartbar sein.

Häufige Fehler bei der Erstellung benutzerdefinierter TYPO3 Elemente

Benutzerdefinierte TYPO3 Content Elements funktionieren häufig nicht, weil kleine Einrichtungsschritte übersehen werden. Dies sind die häufigsten Fehler, die vermieden werden sollten:

  • CType ist nicht korrekt registriert
  • Element erscheint nicht im Backend-Wizard
  • TCA-Override-Datei befindet sich im falschen Pfad
  • TYPO3-Cache wurde nach Änderungen nicht geleert
  • TypoScript-Setup wurde nicht eingebunden
  • Fluid Template-Pfad ist falsch
  • Datenbankfeld wurde im Code hinzugefügt, aber nicht in der Datenbank angewendet
  • Frontend-Ausgabe wird nicht gerendert
  • Backend-Vorschau fehlt oder funktioniert nicht
  • Sprachlabels fehlen
  • Rohe Ausgabe wird ohne korrekte Escape- oder Bereinigungsmaßnahmen verwendet

Diese Probleme lassen sich normalerweise leicht beheben, wenn Dateistruktur, CType-Key, TCA-Setup, TypoScript-Konfiguration und Template-Pfade Schritt für Schritt überprüft werden.

Fehlerbehebung: Benutzerdefiniertes Element wird nicht angezeigt oder gerendert

Problem

Wahrscheinliche Ursache

Lösung

Element nicht im Wizard

PageTSconfig fehlt

Wizard-Konfiguration hinzufügen und TYPO3-Cache leeren

Feld nicht sichtbar

TCA nicht geladen

TCA-Override-Datei und CType-Konfiguration prüfen

Frontend leer

TypoScript-Setup fehlt

setup.typoscript einbinden und CType-Key prüfen

Template nicht gefunden

Falscher Template-Pfad

templateRootPaths und Fluid Template-Namen prüfen

Datenbankfehler

Feld nicht zur Datenbank hinzugefügt

Datenbankvergleich oder Migration ausführen

Vorschau nicht angezeigt

Problem mit Preview-Hook oder Konfiguration

Backend Preview Renderer oder Fluid Preview Setup prüfen

Labels fehlen

Sprachdatei fehlt oder falscher Key

XLF-Label-Pfade und Übersetzungsschlüssel prüfen

Unsichere Ausgabe

Rohe Ausgabe falsch verwendet

Ausgabe standardmäßig escapen und vertrauenswürdiges HTML bereinigen

Beispiel für ein benutzerdefiniertes Element: CTA-Box

Eine CTA-Box ist ein praktisches TYPO3 Content Element, da sie für Agenturen, Marketingteams und Redakteure nützlich ist. Sie bietet Redakteuren eine feste Struktur, anstatt dass sie denselben Bereich auf jeder Seite manuell erstellen müssen.

Eine einfache CTA-Box kann Folgendes enthalten:

  • Überschrift
  • Fließtext
  • Button-Text
  • Button-Link
  • Bild
  • Hintergrundstil

Diese Art von benutzerdefiniertem Content Element eignet sich besonders für Landingpages, Serviceseiten, Kampagnenseiten und Blog-CTAs. Entwickler können die Frontend-Ausgabe mit einem Fluid Template steuern, während Redakteure nur die benötigten Felder verwalten.

Checkliste für benutzerdefinierte Elemente vor dem Go-Live

Bevor ein benutzerdefiniertes TYPO3 Content Element veröffentlicht wird, prüfen Sie den vollständigen Workflow von der Backend-Bearbeitung bis zur Frontend-Ausgabe.

  • CType funktioniert im TYPO3-Backend
  • Element erscheint im Assistenten „Neues Inhaltselement“
  • Felder werden korrekt gespeichert
  • Frontend wird korrekt gerendert
  • Fluid Template-Pfad ist korrekt
  • Backend-Vorschau ist für Redakteure verständlich
  • Sprachlabels sind hinzugefügt
  • Ausgabe ist escaped oder bereinigt
  • Barrierefreiheit wurde getestet
  • Mobile Darstellung wurde getestet
  • Cache-Verhalten wurde geprüft
  • Redakteurs-Workflow wurde getestet
  • TYPO3 v13/v14-Kompatibilität wurde geprüft

Ein benutzerdefiniertes Content Element ist erst dann bereit für den Go-Live, wenn Entwickler und Redakteure es fehlerfrei verwenden können.

Fazit

Die Erstellung eines benutzerdefinierten Content Elements in TYPO3 gibt Entwicklern bessere Kontrolle über Struktur, Felder, Frontend-Ausgabe und Redakteurs-Erfahrung.

Verwenden Sie die Core CType-Methode, wenn das Projekt vollständige Kontrolle über TCA, TypoScript, Fluid Templates, Backend-Vorschau und individuelle Verarbeitung benötigt. Verwenden Sie Content Blocks, wenn Sie schneller strukturierte Content Elements mit einer einfacheren Einrichtung erstellen möchten. Verwenden Sie Plugins oder Extensions, wenn die Funktion dynamische Logik, Datensätze, Formulare, Filter, Listen oder Workflows benötigt.

Das beste benutzerdefinierte TYPO3 Content Element ist nicht nur technisch korrekt. Es sollte einfach für Redakteure nutzbar, sicher für zukünftige Upgrades, leistungsoptimiert, barrierefrei und für SEO richtig strukturiert sein.

Ein strukturierter Start für TYPO3-Projekte

Ein strukturierter Start für TYPO3-Projekte

Nutzen Sie diesen Leitfaden, um typische Fehler zu vermeiden und Ihr TYPO3-Projekt von Anfang an auf ein solides Fundament zu stellen.

FAQs

Ein benutzerdefiniertes TYPO3 Content Element ist ein wiederverwendbarer Inhaltsblock, der für eine bestimmte Website-Anforderung erstellt wurde. Es kann benutzerdefinierte Felder, Backend-Einstellungen, Frontend-Rendering und ein Fluid Template enthalten.

Erstellen Sie es, indem Sie einen CType registrieren, TCA-Felder konfigurieren, es zum Assistenten „Neues Inhaltselement erstellen“ hinzufügen, das TypoScript-Rendering definieren und ein Fluid Template erstellen.

CType ist der Content-Typ-Identifier in TYPO3. Er teilt TYPO3 mit, welches Content Element verwendet wird und welche Backend-Felder, Rendering-Konfiguration und welches Template angewendet werden sollen.

Verwenden Sie Content Blocks für schneller erstellte strukturierte Elemente mit einfacherer Konfiguration. Verwenden Sie Core CType, wenn Sie vollständige Kontrolle, eine erweiterte TCA-Konfiguration, individuelles Rendering oder komplexes projektspezifisches Verhalten benötigen.

Eine benutzerdefinierte Extension oder ein Sitepackage wird empfohlen, da dadurch Konfiguration, Templates, TypoScript, Labels und Backend-Einstellungen organisiert bleiben.

Fügen Sie es mithilfe von PageTSconfig hinzu. Dadurch wird das benutzerdefinierte Content Element im TYPO3-Backend unter „Neues Inhaltselement erstellen“ sichtbar.

Ansprechpartner für Internetagentur und TYPO3 Projekte

Sven Thelemann

Servicepartner - Deutschland

Sven Thelemann

Kommentare und Antworten

×

Name ist erforderlich!

Geben Sie einen gültigen Namen ein

Gültige E-Mail ist erforderlich!

Gib eine gültige E-Mail Adresse ein

Kommentar ist erforderlich!

* These fields are required.

Sei der erste der kommentiert