futuraweb / contao-backend-suite
Backend-Werkzeuge für Contao 5 – ID-/Alias-Suche, Style-Selector für CSS-Klassen, Toolbar, Kurzlinks und mehr
Package info
github.com/futura-web/contao-backend-suite
Type:contao-bundle
pkg:composer/futuraweb/contao-backend-suite
Requires
- php: ^8.1
- contao/core-bundle: ^5.3 || ^6.0
- contao/manager-plugin: ^2.0
- doctrine/dbal: ^3.6 || ^4.0
- symfony/config: ^6.4 || ^7.0 || ^8.0
- symfony/dependency-injection: ^6.4 || ^7.0 || ^8.0
- symfony/http-foundation: ^6.4 || ^7.0 || ^8.0
- symfony/http-kernel: ^6.4 || ^7.0 || ^8.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v2.17.0
- v2.16.0
- v2.15.1
- v2.15.0
- v2.14.1
- v2.14.0
- v2.13.2
- v2.13.1
- v2.13.0
- v2.12.0
- v2.11.0
- v2.10.0
- v2.9.0
- v2.8.4
- v2.8.3
- v2.8.2
- v2.8.1
- v2.8.0
- v2.7.0
- v2.6.0
- v2.5.0
- v2.4.0
- v2.3.1
- v2.3.0
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.1.0
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-11-02 18:14:40 UTC
README
Backend-Werkzeuge für Contao 5 — ein Nachbau von OM-Backend (das nur bis Contao 4.x läuft), Feature für Feature.
Ein Projekt von Futura Web.
Installation
Aus diesem Repository (empfohlen)
"repositories": [ { "type": "vcs", "url": "https://github.com/futura-web/contao-backend-suite" } ]
composer require futuraweb/contao-backend-suite vendor/bin/contao-console contao:migrate vendor/bin/contao-console cache:clear
Als lokales Paket
"repositories": [ { "type": "path", "url": "packages/contao-backend-suite" } ]
composer require futuraweb/contao-backend-suite:@dev vendor/bin/contao-console contao:migrate vendor/bin/contao-console cache:clear
Features
Die Features werden nacheinander gebaut. Stand:
- Style-Selector — benannte CSS-Klassen, die Redakteure an beliebigen Stellen auswählen können (Content-Elemente, Artikel, Module, Formulare, Seiten, Layouts, ...). Nach dem Vorbild von craffft/css-style-selector-bundle, aber mit zwei Verbesserungen:
- Automatische Erkennung: Jede Tabelle mit einem
cssID- odercssClass-Feld bekommt den Style-Selector automatisch eingehängt — keine eigene DCA-Datei pro Tabelle nötig. - Dynamische Verfügbarkeit: Statt fixer Checkboxen pro Tabelle (
disableInArticle,disableInContent, ...) wird die Liste der verfügbaren Tabellen zur Laufzeit ermittelt.
- Automatische Erkennung: Jede Tabelle mit einem
- Toolbar-Quicklinks — Quicklinks zu Modulen, Seitenlayouts und Bildgrößen des aktuellen Themes direkt im Backend-Kopfmenü, plus Projekt-Umschalter bei mehreren Themes (siehe unten). Kein
tl_style_sheet-Quicklink, da Contao 5 den internen CSS-Editor nicht mehr hat. - Bild-Shrinker — Bilder beim Hochladen automatisch komprimieren und Dateinamen bereinigen (siehe unten).
- Sprache bei Startpunkten — zeigt den Sprachcode einer Startseite (
type = root) direkt im Seitenbaum an, z. B. „Startseite [de]". - ID-/Alias-Suche — die Seiten-ID steht direkt neben dem Titel im Seitenbaum (z. B. „Startseite [ID: 1]"); der Seitenalias ist bereits über Contao-Core im Backend-Suchfeld durchsuchbar.
- IDs bei Shift anzeigen — die Seiten-ID (siehe ID-/Alias-Suche) ist standardmäßig ausgeblendet und erscheint nur, solange die Umschalttaste (Shift) gedrückt gehalten wird.
- Textfeld-Längenanzeige — unter Seitentitel und Beschreibung (
pageTitle/description) zeigt ein Live-Zähler die Zeichenanzahl, farblich markiert gegen die von Google üblicherweise angezeigte Länge (Titel 40–60, Beschreibung 120–160 Zeichen). - [~] Markdown-Viewer — nicht relevant, wird nicht gebaut (kein Markdown-Einsatz in den Projekten).
- Backend-Tabs
- Backend-Links (Kurzlinks) — bereits durch Contao-Core abgedeckt: "URL als Favorit speichern" + die Favoriten-Verwaltung (
do=favorites), kein eigener Code nötig. - [~] User-Redirects nach Login — nicht gewünscht, Standardverhalten (Dashboard) bleibt.
- Layout-Button in der Seitenstruktur — nicht nötig, bereits durch den "Seitenlayouts"-Quicklink in der Toolbar abgedeckt (siehe oben).
- Speichern-Buttons ohne Untermenü — "Speichern und neu" / "Speichern und duplizieren" stehen als eigene, immer sichtbare Buttons da statt hinter dem Dropdown-Pfeil versteckt zu sein.
- [~] Backend Full-Width — nicht nötig, im c5-Projekt bereits vorhanden/gegeben.
- [~] Reihenfolge der Backend-Module einstellbar — nicht gewünscht.
- Neueste Contao-Version anzeigen — bereits durch den Contao Manager abgedeckt (Versionsnummer + "neuste Version"-Hinweis bei jedem Update-Check), kein eigener Code nötig.
- Ordner-Namensbereinigung — neu angelegte und umbenannte Ordner im Dateimanager werden wie Datei-Uploads bereinigt (siehe unten).
- Projekt-Theme-Konfiguration — Rahmen, Header, Hauptnavigation und Schriftgrößen/Abstände direkt im Theme-Formular pflegen, statt SCSS-Dateien von Hand zu editieren (siehe unten).
Style-Selector: Benutzung
- Backend → Backend-Suite → Style-Selector → neuen Style anlegen.
- Bezeichnung vergeben (das sieht der Redakteur), z. B. "Rahmen dünn".
- CSS-Klasse(n) eintragen, die beim Auswählen gesetzt werden, z. B.
border-thin. - Unter Verfügbar in die Bereiche ankreuzen, in denen der Style wählbar sein soll (z. B. Inhaltselemente, Artikel).
- In jedem passenden Formular (überall, wo es ein
cssID- odercssClass-Feld gibt) erscheint automatisch ein Mehrfachauswahlfeld "Style-Klassen". Die gewählten Styles werden beim Speichern in die vorhandene CSS-Klassen-Spalte eingemischt, bereits vorhandene, manuell eingetragene Klassen bleiben erhalten.
Toolbar: Quicklinks
Bei OM-Backend stapeln sich in der Toolbar die Theme-Buttons (Stylesheets, Module, Seitenlayouts, Bildgrößen) für jedes vorhandene Theme untereinander. In Mehrprojekt-Installationen wird das schnell unübersichtlich.
- Nur ein Theme: Jedes Quicklink-Icon (Module, Seitenlayouts, Bildgrößen) ist ein direkter Link — genau wie bisher.
- Mehrere Themes: Jedes Icon wird stattdessen zu einem Hover-Menü mit allen Projekten darunter:
- Module: pro Projekt ein Link zur Modul-Liste (ein Theme kann sehr viele Module haben, eine Einzelauflistung wäre unübersichtlich).
- Seitenlayouts und Bildgrößen: pro Projekt werden die einzelnen Einträge direkt verlinkt (z. B. jedes Layout einzeln) — bei leerem Projekt fällt es auf einen Link zur Liste zurück.
- Kein
tl_style_sheet-Quicklink: Contao 5 hat den klassischen internen CSS-Editor nicht mehr, nur noch echte CSS-Dateien.
Bild-Shrinker: Komprimierung & Dateinamen-Bereinigung
Im Dateimanager gibt es einen Schalter ("Bilder beim Hochladen verkleinern & umbenennen") im Theme-Bearbeiten-Formular. Der Zustand wird pro Theme ("Projekt") gespeichert, nicht global oder pro Sitzung.
Ist der Schalter für das aktuelle Projekt aktiviert, passiert bei jedem Datei-Upload automatisch:
- Dateiname bereinigen (alle Dateitypen): Kleinschreibung, Leerzeichen → Unterstrich, Umlaute/Sonderzeichen werden transliteriert (
ä→ae,ö→oe,ü→ue,ß→ss, sonstige Akzente via Transliteration). Bereits bereinigte Namen bleiben beim erneuten Durchlauf unverändert. - Komprimierung (nur Bilder: JPEG, PNG, WebP; GIFs werden wegen möglicher Animation übersprungen): Bilder über 1 MB werden ohne Änderung der Abmessungen stärker komprimiert. Nur bei tatsächlich komprimierten Bildern wird zusätzlich ein
.min-Marker vor der Dateiendung eingefügt (Mein Büro Foto.JPG→mein_buero_foto.min.jpg), um zu kennzeichnen, dass die Datei verkleinert wurde — bei anderen Dokumenten (PDF, ZIP, ...) entfällt dieser Marker, da nichts komprimiert wurde (Rechnung Januar.pdf→rechnung_januar.pdf).
Ordner-Namensbereinigung
Neu angelegte Ordner und Umbenennungen bestehender Ordner im Dateimanager werden automatisch nach demselben Schema bereinigt wie Datei-Uploads (Kleinschreibung, Umlaute, Leerzeichen → Unterstrich) — allerdings ohne .min-Marker. Gilt immer, unabhängig vom Bild-Shrinker-Schalter.
Technische Besonderheit: Contao ruft den Rename-Mechanismus (und damit auch diese Bereinigung) nur auf, wenn sich der Namensfeld-Wert beim Speichern tatsächlich ändert — ein erneutes Speichern ohne Textänderung bewirkt nichts (Contao-Core-Verhalten, siehe DC_Folder::save()).
Projekt-Theme-Konfiguration
Im Theme-Bearbeiten-Formular gibt es zusätzliche Abschnitte, mit denen sich zentrale SCSS-Variablen direkt pflegen lassen, statt die Dateien von Hand zu editieren:
- Rahmen: Rahmenfarbe (+ Fokus/Fehler), -stärke, -art, Eckenradius → schreibt nach
_vars_borders.scss. - Header: Höhe, Logohöhe, Hamburger-Icon-Farbe → schreibt nach
_vars_header.scss. - Hauptnavi: Einflug-Richtung, Hintergrund, Schriftgröße/-stärke, Farben (inkl. Hover/Aktiv/Trail) → schreibt nach
_nav_main.scss/_vars_header.scss/_vars_colors.scss. - Schriftgrößen: Größe und Abstand für Fließtext sowie H1–H6 (jeweils als responsiver
clamp()-Wert aus Start-/Endgröße) → schreibt nach_vars_typography.scss.
Leere Felder lassen den bestehenden SCSS-Wert unangetastet (kein Überschreiben). Die Farb-Dropdowns beziehen ihre Optionen aus den im Feld "Farben" (siehe oben) hinterlegten Variablen; Eckenradius/Abstände aus den $clampXXpx-Variablen in _vars_sizes.scss.
Der Projekt-Ordner (unter files/public/<slug>/...) wird dynamisch über das Theme selbst ermittelt (tl_theme.templates), ist also nicht fest verdrahtet — funktioniert automatisch für jedes Theme, das dieser SCSS-Struktur folgt. Beim allerersten Umbenennen eines frisch aus dem Boilerplate-Ordner project erzeugten Themes werden templates/project und files/public/project zudem automatisch in einen aus dem Theme-Namen abgeleiteten Ordnernamen umbenannt.
Technik
- Symfony-Bundle für Contao 5,
#[AsHook]/#[AsCallback]-Attribute statt klassischer Callback-Arrays. - Style-Selector-Daten liegen in
tl_style_selector. - Das injizierte Auswahlfeld heißt
backendSuiteStyleSelectorund wird dynamisch in jede passende Tabelle eingehängt (eigeneblob-Spalte je Tabelle, automatisch percontao:migrateangelegt).
Namenskonvention
Felder, die dieses Bundle in fremde Tabellen einhängt (z. B. tl_content, die nicht zu diesem Bundle gehören), bekommen einheitlich das Präfix backendSuite + Feature-Name in camelCase — so sind Kollisionen mit anderen Bundles ausgeschlossen und erkennbar, woher ein Feld stammt. Eigene Tabellen und Backend-Module (z. B. tl_style_selector, style_selector) folgen dagegen der normalen, unpräfixierten Contao-Konvention.
Ausnahme: die Felder der Projekt-Theme-Konfiguration (Rahmen/Header/Hauptnavi/Schriftgrößen) folgen der älteren project-Konvention statt backendSuite, da dieses Feature aus einem projekt-lokalen contao/dca/tl_theme.php ins Bundle migriert wurde und die bestehenden Feldnamen/Datenbankspalten (mit bereits gepflegten Werten) unverändert übernommen wurden.
Voraussetzungen
Die SCSS-Projektstruktur (files/public/<slug>/theme/css/...) wird von diesem Bundle vorausgesetzt (Schriftarten/Farben-Import, Projekt-Theme-Konfiguration) — sie stammt aus dem Futura-Web-eigenen Theme-Boilerplate, ist aber kein Contao-Standard. In einem neuen Projekt ohne diese Struktur bleiben die betroffenen Formularfelder einfach wirkungslos (kein Fehler), bis die passenden SCSS-Dateien unter diesem Pfad existieren.