T3SB Config
Hier können alle relevanten Konfigurationen für dein "Bootstrap-Layout" angepasst werden.
Zuerst muss eine Konfiguration auf der Root-Page erstellt werden.
Diese kann jederzeit editiert werden, ein Löschen im Backend ist nicht möglich!
Nach dem Speichern der Konfiguration in die Datenbank, werden die Dateien t3sbconstants.typoscript und t3sbsetup.typoscript mit der gespeicherten Konfiguration in der EXT:t3sb_package erstellt bzw. aktualisiert.
Wenn “Custom SCSS” aktiviert und der Task ausgeführt wurde, werden auch die Dateien custom-x.scss und custom-variables-x.scss aktualisiert.
Die Konstanten (Konfiguration) aus der “Root-Page” können wie gewohnt für Unterseiten überschrieben werden - z.B.:
Konstanten:
[traverse(page, "uid") in [99,159,160]]
bootstrap.config.navbarColor = warning
bootstrap.config.jumbotronEnable = 0
[END]5.3.50 Die generierten Dateien landen nicht mehr in EXT:t3sb_package, sondern unter typo3temp/assets/t3sbootstrap/ (seit 5.3.59 über assetDir verlegbar) – das TypoScript in TypoScript/, die SCSS-Dateien in T3SB-SCSS/. Werden sie gelöscht, schreibt t3sbootstrap sie beim nächsten Frontend-Aufruf aus der Datenbank neu.
Neu ist außerdem der Export & Import der Konfiguration direkt im Modul, im Akkordeon unter „Ausgelagerte Konstanten“. Damit lässt sich eine Konfiguration von einem Server auf einen anderen übertragen. Beim Import stehen drei Modi zur Verfügung: Update (Datensatz wird geleert und neu befüllt, die uid bleibt erhalten), Replace und Add.
Hier eine Übersicht der Optionen:
General Settings
Navbar
5.3.51 Der Tab Brand (Logo) hat drei neue Felder: Bildbreite, Bildhöhe und Alternativtext. Sie erscheinen nur, wenn unter „make your selection“ ein Logo gewählt ist. Bis dahin kamen diese drei Werte ausschließlich aus den Site-Settings – ein abweichendes Logo im Datensatz bekam dadurch die Maße des Site-Logos verpasst.
Es gilt jetzt für alle vier Werte dieselbe Rangfolge wie zuvor schon für den Pfad: der Datensatz gewinnt, das Site-Setting ist der Rückfall. Leer bzw. 0 bedeutet „nimm den Wert aus der Site“ (bootstrap.navbar.image.defaultPath, …width, …height, …altText).
Nach dem Update – drei Schritte
- Datenbankanalyse ausführen. Die Version bringt drei neue Spalten in
tx_t3sbootstrap_domain_model_configmit:navbar_image_width,navbar_image_heightundnavbar_image_alt. Install-Tool → Analyze Database Structure, oder auf der Konsolevendor/bin/typo3 extension:setup. Ohne diesen Schritt lässt sich der Konfigurations-Datensatz nicht speichern. - Upgrade Wizard ausführen (optional): „Move the navbar brand image settings into the configuration record“. Er holt alle vier Werte – also auch den Pfad aus
bootstrap.navbar.image.defaultPath– je Siteroot in den Datensatz, und zwar nur dort, wo das jeweilige Feld dort noch leer bzw. 0 ist. Ohne ihn ändert sich nichts, weil die Site-Settings als Rückfall weiter greifen; mit ihm steht das Logo an einer Stelle statt an zweien. - Caches leeren.
Navigationstitel als Überschrift
Die h1 der Seite nahm bisher ausnahmslos den Seitentitel. Lange, für die Suche geschriebene Titel stehen damit auch groß über der Seite, obwohl im Menü längst die kurze Fassung steht. Im Reiter Page title (h1) gibt es dafür jetzt den Schalter Navigationstitel verwenden.
| Einstellung | Feld | Bedeutung |
|---|---|---|
| Navigationstitel verwenden | page_titlenavtitle | Die h1 nimmt das Seitenfeld nav_title statt title. Vorgabe: aus. |
Trägt eine Seite keinen Navigationstitel, behält sie ihren Seitentitel – eine Option darf keine leere Überschrift erzeugen. Der Schalter gilt für den ganzen Seitenbaum der Site; eine Ausnahme je Seite ist der Navigationstitel selbst: Wo keiner gesetzt ist, ändert sich nichts.
5.3.57 Neu in dieser Version, und ab Werk aus – bestehende Seiten ändern sich durch das Update nicht.
Die Option bringt eine neue Spalte page_titlenavtitle in tx_t3sbootstrap_domain_model_config mit. Nach dem Update deshalb Datenbankanalyse ausführen (Install-Tool → Analyze Database Structure oder vendor/bin/typo3 extension:setup) und den Konfigurations-Datensatz einmal speichern – erst dabei wird die neue Konstante nach t3sbconstants.typoscript geschrieben.
Breadcrumb
Die Brotkrümelnavigation zeigt, wo im Seitenbaum die aktuelle Seite liegt. Sie wird im Konfigurations-Datensatz im Reiter Breadcrumb eingestellt und ist ab Werk aktiv – nur auf der Startseite nicht.
| Einstellung | Feld | Bedeutung |
|---|---|---|
| Enable | breadcrumb_enable | Schaltet die Breadcrumb ein. Vorgabe: an. |
| Not on rootpage | breadcrumb_notonrootpage | Auf der Startseite ausblenden – dort bestünde sie ohnehin nur aus einem Eintrag. Vorgabe: an. |
| Container | breadcrumb_container | Von none über container bis container-fluid – dieselbe Auswahl wie an anderer Stelle auch. Vorgabe: container. |
| Container position | breadcrumb_containerposition | inside legt den Container in das <nav>, outside legt das <nav>in den Container. Ohne Auswahl steht das <nav> blank da. |
| Breadcrumb position | breadcrumb_position | Vier Plätze: über oder unter der Navbar, über oder unter dem Jumbotron. Vorgabe: unter dem Jumbotron. |
| Below the content | breadcrumb_bottom | Zusätzlich – oder ausschließlich – unter dem Inhalt. Siehe Hinweis unten. |
| Extra class | breadcrumb_class | Klasse am <nav>, etwa mb-0 für margin-bottom: 0. |
| Icon | breadcrumb_faicon | Statt des Titels ein Icon – nur beim ersten Eintrag. Siehe Hinweis unten. |
| No rounded corner | breadcrumb_corner | Hängt rounded-0 an die <ol>. |
„Below the content“ ist unabhängig von „Enable“
Das Partial rendert, sobald eine der beiden Optionen gesetzt ist. Beide zusammen ergeben also eine Breadcrumb oben und unten. Willst du sie nur unter dem Inhalt, schaltest du „Enable“ ab und „Below the content“ an – das meint die Beschreibung mit „only or also“. Die untere Ausgabe liegt in einem <div class="breadcrumb-bottom"> und ignoriert die Positionsauswahl.
Nur der erste Eintrag ist verlinkt
Das ist Absicht und hängt an einer Einstellung, die woanders steht: Erst wenn unter Navbar → Various Settings die Option Clickable parent aktiv ist, werden auch die Zwischenstufen zu Links. Ohne sie sind es reine Textstufen – sinnvoll, wenn die übergeordneten Seiten Verweise oder Ordner ohne eigenen Inhalt sind.
Das Icon braucht zwei Voraussetzungen
Die Option ersetzt den Text nur beim ersten Eintrag, und nur wenn die Seite unter Erscheinungsbild ein Seiten-Icon trägt und EXT:iconpack geladen ist. Fehlt eines von beidem, steht dort weiterhin der Seitentitel – ohne Fehlermeldung.
Zwei Dinge, die die Breadcrumb mitbenutzen
Auf einer News-Detailseite hängt lib.newsTitle den Titel der Meldung als letzten, aktiven Eintrag an. Und im Reiter Page Title gibt es die Position „above the Breadcrumb“ – dann wird der Seitentitel in den Container der Breadcrumb gesetzt, teilt sich also deren Breite. Wer das Bootstrap-CSS ausdünnt: im Site-Set Optimize entscheidet bootstrap.optimize.breadcrumb, ob die Komponente überhaupt mitkompiliert wird.
Eigenes SCSS sichern und übertragen
Das eigene SCSS steht im Konfigurations-Datensatz in den Feldern Custom variables SCSS und Custom SCSS. Der Datensatz ist die Quelle – die Dateien unter typo3temp/assets/t3sbootstrap/T3SB-SCSS/ werden daraus geschrieben und sind jederzeit neu erzeugbar. Das ist wichtig zu wissen, denn typo3temp/ ist im TYPO3-Core ausdrücklich als jederzeit löschbar deklariert: Jedes Update, jedes Deployment und jeder Cache-Flush leert es, gemanagte Hoster tun das bei jedem Update-Lauf.
Daraus folgt beides, was du zum Sichern und Umziehen brauchst:
| Wofür | Wie |
|---|---|
| In eine andere Installation | Im Modul unter Konfiguration übertragen den Export herunterladen. Die JSON-Datei enthält custom_scss und custom_variables_scss – und damit auch das SCSS. Sie enthält weder uid noch pid, der Seitenbaum des Ziels darf also völlig anders aussehen. |
| Als Sicherung | Derselbe Export. Vor einer größeren Änderung einmal herunterladen – das ist die vollständige Sicherung der Konfiguration inklusive SCSS. |
| Einen Schritt zurück | Die Datensatz-Historie von TYPO3 am Konfigurations-Datensatz. Jedes Speichern wird protokolliert, mit Diff und einzeln rücknehmbar. |
Nicht im Export enthalten sind die Site Settings – Bootstrap-Version, Bootswatch-Theme und Google Fonts stehen in der Site-Konfiguration und gehören nicht zum Datensatz.
5.3.57 Das Site-Setting bootstrap.cdn.keepVariablesentfällt. Es hat die Datei zur Quelle erklärt, sein Versprechen aber nie gehalten: Beim Speichern im Backend wurde sie trotzdem aus dem Datensatz überschrieben, der Schalter wirkte nur gegen den Scheduler-Task. Er hielt die Datei also ausschließlich dann, wenn beide Felder im Datensatz leer blieben – und genau dann lag der Inhalt nur noch in typo3temp/ und war beim nächsten Update weg.
Zu tun beim Update: Nichts, wenn die Einstellung auf 0 stand – das war die Werkseinstellung. Stand sie auf 1, einmal vendor/bin/typo3 t3sbootstrap:customScss <Rootseiten-ID> laufen lassen, bevor der Konfigurations-Datensatz gespeichert wird: Dann wird die vorhandene Datei einmalig in den Datensatz übernommen. Das Setting kann danach aus der Site-Konfiguration entfernt werden, es wird ignoriert.
5.3.57 Der Scheduler-Task „T3SB Custom SCSS“ überschreibt vorhandenes SCSS nicht mehr. Bis 5.3.56 hat er den Inhalt bei jedem Lauf auf das Bootswatch-Theme bzw. den Vorgabe-Kommentar zurückgesetzt. Jetzt gilt: Steht im Datensatz Inhalt, wird die Datei daraus geschrieben und der Inhalt bleibt. Ist der Datensatz leer und eine Datei vorhanden, wird sie in den Datensatz übernommen. Ist beides leer, wird wie bisher aus dem Bootswatch-Theme oder dem Vorgabe-Kommentar initialisiert.
Wer das Bootswatch-Theme neu ziehen will, leert die beiden Felder im Datensatz und lässt den Task laufen.
Nach einem geleerten typo3temp/
TypoScript und die beiden SCSS-Dateien schreibt die Extension beim nächsten Frontend-Aufruf selbst neu – sie stehen ja im Datensatz. Die heruntergeladenen Teile nicht: die entpackten Bootstrap-Quellen unter T3SB-Bootstrap/ und die lokalen CSS/JS-Dateien müssen von außerhalb geholt werden. Der Webserver braucht dafür einen ausgehenden Internetzugang – konkret zu github.com (Bootstrap-Quellen), cdn.jsdelivr.net, cdnjs.cloudflare.com, unpkg.com, code.jquery.com und, bei lokal gehosteten Google Fonts, gwfh.mranftl.com. Nicht der Browser des Redakteurs, sondern der Server selbst. Ein Seitenaufruf darf auf solche Downloads nicht warten, deshalb holt die Extension sie nicht von allein. Dafür sind die beiden Kommandos da: t3sbootstrap:customScss <Rootseiten-ID> und t3sbootstrap:cdnToLocal. Fehlen sie, sagt das Modul es ab 5.3.57 auch dann, wenn nur die Bootstrap-Quellen betroffen sind.
Seit 5.3.59 lässt sich das ganze Verzeichnis aus typo3temp/ herausnehmen – assetDir = uploads/t3sb-assets/ in der Extension-Konfiguration; dann stellt sich die Frage gar nicht mehr. Wie man das einrichtet — und was zu tun ist, wenn man bei typo3temp/ bleibt, auch bei einem Hoster, der es unaufgefordert leert: Deployment & typo3temp.

























