Zum Inhalt springen

Backend

TYPO3-Backend-Integration für mpc/mp-core: Seite „TSconfig“, RTE-Voreinstellung, Backend-CSS, Inhaltsvorschauen, Backend-Layouts und PHP-Helfer für den Editor.

MP-Core Logo

Übersicht

BereichStandortZweck
Seiten-TSconfigConfiguration/Sets/mp-core/page.tsconfigWird über „Site Set“ geladen; importiert alle Backend-/Editor-TSconfig-Dateien
RTE-VoreinstellungConfiguration/RTE/Default.yamlAls globale Voreinstellung registriert default in ext_localconf.php
Backend-CSSResources/Public/StyleSheets/backend.cssTYPO3-Backend-UI-Anpassungen (Vite-Eintrag backend.js)
CKEditor-CSSResources/Public/StyleSheets/ckeditor.cssWYSIWYG-Darstellung im Backend + RTE-Ausgabe im Frontend
CKEditor-PluginResources/Public/JavaScripts/ckeditor/definition-list.jsPlugin für die Symbolleiste der Definitionsliste
Vorschau-RendererClasses/Preview/CustomContentPreviewRenderer.phpVorschau des Inhalts von Seitenmodulen
Backend-LayoutsConfiguration/TsConfig/Page/Mod/WebLayout/BackendLayouts/Web > Struktur „colPos“ der Seite
Formular-YAMLResources/Extensions/form/Yaml/BaseSetup.yamlEXT:Formular-Styling (wenn form geladen wird)

Seiten-TS-Konfiguration

Registriert über das Site-Set (Configuration/Sets/mp-core/page.tsconfig):

 
@import 'EXT:mp_core/Configuration/TsConfig/Page/ContentElement/All.tsconfig'
@import 'EXT:mp_core/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig'
@import 'EXT:mp_core/Configuration/TsConfig/Page/RTE.tsconfig'
@import 'EXT:mp_core/Configuration/TsConfig/Page/TCADefaults.tsconfig'
@import 'EXT:mp_core/Configuration/TsConfig/Page/TCEMAIN.tsconfig'
@import 'EXT:mp_core/Configuration/TsConfig/Page/TCEFORM.tsconfig'
 

TCEFORM.tsconfig

Formularverhalten für den Editor pages und tt_content:

  • Seiten: layout — nur „Standard“ (Elemente 1–4 entfernt).
  • Inhalt: Blendet nicht verwendete Kern-CTypes aus (bullets, mehrere menu_*, textmedia, table, …).
  • Kopfzeilen: erweiterte header_layout Bezeichnungen (Punkte 6–12); Standard-TYPO3-Layout 0 entfernt.
  • Frames: frame_class und linkToTop global deaktiviert.
  • Überschreibungen pro CType (z. B. menu_subpages Link-Felder) – vollständige Liste siehe Datei.

TCADefaults.tsconfig

Standardwerte beim Anlegen von Datensätzen, z. B. tt_content.filelink_size = 1, imagecols = 1.

TCEMAIN.tsconfig

Standard-Berechtigungsflags für neue Inhalte (Bearbeitungsrechte für Gruppen/Benutzer).

Assistenten für Inhaltselemente

Configuration/TsConfig/Page/ContentElement/Element/*.tsconfig registriert neue Einträge im Assistenten für Inhaltselemente:

DateiCType
Gallery.tsconfiggallery
Stage.tsconfigstage
Banner.tsconfigbanner
Singleteaser.tsconfigsingleteaser

Container-CTypes (ce_*) werden vom TCA „b13/container“ registriert, nicht durch separate TSconfig-Dateien des Assistenten.

Backend-Layouts

Mod/WebLayout/BackendLayouts/Default.tsconfig sowie Article.tsconfig definieren die Spaltenstruktur für das Seitenmodul:

LayoutDateiTypische Spaltenpositionen
StandardDefault.tsconfig4 (Logos oben), 0 (oben), 1 (Hauptbereich), 2 (unten)
ArtikelArticle.tsconfigArtikelspezifische Bereiche

SVG-Symbole: Resources/Public/BackendLayouts/.

RTE (CKEditor 5)

Registrierung

 
// ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:mp_core/Configuration/RTE/Default.yaml';
 

Die Seite „TSconfig“ wählt die Voreinstellung aus:

 
// Configuration/TsConfig/Page/RTE.tsconfig
RTE.default.preset = default
 

Tag-Neuzuordnung in derselben Datei: bstrong, iem, sdel (RTE und DB-Parser).

Stylesheets

KonstanteDatei
BE.stylesheets.mp_core_backendResources/Public/StyleSheets/backend.css
BE.stylesheets.mp_core_ckeditorResources/Public/StyleSheets/ckeditor.css

Neu erstellen mit npm run build nach Build/ nach SCSS-Änderungen.

Voreingestellte Hervorhebungen (Configuration/RTE/Default.yaml)

  • contentsCss: ckeditor.css — Der Editor spiegelt die Typografie und Schaltflächen des Frontends wider.
  • Symbolleiste: Überschriften, Stile, Sprache, Listen (einschließlich Definitionslisten), Tabellen, Quelltextbearbeitung usw.
  • Stil-Plugin: Bootstrap-Schaltflächen, Kicker/Lead, Blockzitate, Klassen für Überschriftenebenen, Klassen für Linktypen, Text-Hilfsfunktionen.
  • Listen-Eigenschaften: benutzerdefinierte Stile, Startindex, umgekehrte Reihenfolge.
  • Plugin für Definitionslisten: benutzerdefiniertes Modul @mpc/mp-core/ckeditor/definition-list.js (siehe Configuration/JavaScriptModules.php).
  • Zulässige Link-Klassen: internal-link, external-link, download, email, phone, audio, video, glossary, public, legal, gallery, chart.
  • Verarbeitung: zusätzliche zulässige Tags (figure, figcaption, dl, dt, dd, …).

Bezeichnungen: Resources/Private/Language/locallang_rte.xlf.

Frontend-RTE-Ausgabe

TypoScript lib.parseFunc_RTE in Configuration/TypoScript/Setup/60.Lib.typoscript und 90.CleanupRTE.typoscript steuern die HTML-Bereinigung und -Umbrüche im Frontend.

Inhaltsvorschau (CustomContentPreviewRenderer)

Global registriert unter tt_content:

 
// Configuration/TCA/Overrides/tt_content_00_base.php
$GLOBALS['TCA']['tt_content']['ctrl']['previewRenderer'] =
    \Mpc\MpCore\Preview\CustomContentPreviewRenderer::class;
 

Verhalten:

  • Delegiert an TYPO3s StandardContentPreviewRenderer , sofern möglich.
  • Erfasst TypeError aus den Vorschau-Tools des Kerns ab (fehlende Dateiverweise, Null-Sanitierung) und rendert einen Fallback: optionales 150×150-Bild-Thumbnail, Kopfzeile, Untertitel, Auszug aus dem Fließtext (200 Zeichen).
  • Implementiert LoggerAwareInterface. Jeder abgefangene „Throwable“ wird auf warning Ebene mit method, uid, pid, CTypeund die Ausnahme protokolliert, sodass Regressionen aus dem Upstream im TYPO3-Protokoll sichtbar bleiben, anstatt durch den Fallback verdeckt zu werden.
  • Gedacht als vorübergehende Übergangslösung, bis Randfälle in der Core-Vorschau behoben sind.

PHP-Backend-Helfer

KlasseRolle
UserFunc\ColorPickerValueItemsitemsProcFunc für grid_bgcolor -- Erstellt Farboptionen anhand der Schlüssel aus der Website-Konfiguration color-* Schlüssel. Filtert Werte anhand Service\CssColorValidator und begrenzt Bezeichnungen auf 200 Zeichen, damit fehlerhafte Konfigurationen die Auswahl im Backend nicht verfälschen.
Service\CssColorValidatorRein statischer Validator für CSS- <color> Token (benannt, #rgb[a], #rrggbb[aa], rgb()/rgba()/hsl()/hsla()); lehnt jedes Byte ab, das aus einer CSS-Deklaration herausfallen könnte. Wird von Format\CssColorViewHelper.
Backend\Form\Container\FilesControlContainerDateifeld-Container; leitet fieldInformation an untergeordnete Felder
Preview\CustomContentPreviewRendererSiehe oben

Registriert in Configuration/Services.yaml (ColorPickerValueItems ist public: true damit TYPO3 den itemsProcFunc Callback aus dem Container auflösen kann). Siehe „Konfiguration → Dependency Injection“ für die vollständige Liste und das „local-overrides“-Muster.

Inhaltsblöcke (Backend-Editor)

DefinitionslisteContentBlocks/ContentElements/definitionlist/

ElementWert
namedl/definitionlist
typeNamedefinitionlist
Gruppelists

Felder (Schema der Inhaltsblöcke):

FeldTypAnmerkungen
TYPO3/HeaderGrundlegendVerwendet die Kern-Kopfzeilenfelder wieder
radioboxesOptionsfeld0 = untereinander, 1 = nebeneinander
itemSammlungBegriff (text) + Definition (textarea, RTE aktiviert)
TYPO3/AppearanceGrundlegendeRahmen, Abstände

Vorlagen:

  • Frontend: templates/frontend.html
  • Backend-Vorschau: templates/backend-preview.html

Inhaltsblöcke werden bereitgestellt von friendsoftypo3/content-blocks (Composer-Abhängigkeit).

Icons

Configuration/Icons.php registriert SVG-Symbole für CTypes und Container (tx_gallery, tx_stage, ce_accordion, …) registriert, die im Assistenten für neue Inhalte und im Seitenbaum verwendet werden.

Seite teilen