Accordion¶
Überblick¶
Der Accordion-Block stellt ein Bootstrap‑Accordion als LiveCanvas‑Block bereit.
Im Editor lassen sich Titel, Reihenfolge und Optionen komfortabel im Panel steuern, im Frontend wird nur das optimierte Markup ausgegeben.
Der Block wird im LiveCanvas‑Panel unter TWtheme → Accordion angeboten.
Block-Struktur¶
Ein Accordion besteht aus einem Wrapper <div class="accordion" id="..."> mit dem Helper‑Attribut lc-helper="twtheme-accordion". Darin liegen mehrere .accordion-item-Elemente, die jeweils aus Header und Collapse‑Bereich aufgebaut sind. Der Header verwendet das im Panel ausgewählte Tag (h2, h3, h4 oder div) und enthält den klickbaren .accordion-button. Im Collapse‑Bereich liegt die eigentliche Inhaltsfläche .accordion-body, die wieder normale lc-block-Inhalte aufnehmen kann.
Sobald das Panel aktiv genutzt wird, vergibt der Block automatisch eindeutige IDs im Format accordion-..., damit data-bs-target, aria-controls und aria-labelledby konsistent bleiben.
Einstellungen im LiveCanvas-Panel¶
Die Accordion-ID definiert die technische Basis für alle IDs und ARIA‑Bezüge innerhalb des Blocks. Mit dem Feld Header-Tag steuerst du die semantische Ebene der Überschriften. Über Mehrere Items gleichzeitig öffnen wechselst du zwischen klassischem Single‑Open‑Verhalten (mit data-bs-parent) und Multi‑Open‑Verhalten ohne Parent‑Bindung.
Die Option Erstes Item standardmäßig geöffnet setzt den Initialzustand für den ersten Eintrag (show plus aria-expanded="true"). Mit Druck-Button anzeigen aktivierst du die druckbare Variante des Blocks, die im Frontend einen Print‑Button oberhalb des Accordions einblendet. Über Druck-Button HTML (Override) kannst du diesen Button pro Instanz überschreiben; bleibt das Feld leer, greift die globale Theme‑Einstellung.
Items verwalten¶
Mit Items laden liest das Panel den aktuellen Zustand aus der Vorschau ein. Neue Elemente fügst du über Item hinzufügen hinzu, löschen kannst du einzelne Einträge über das × im jeweiligen Item‑Header. Die Reihenfolge wird per Drag & Drop gesteuert; sie entspricht direkt der späteren Frontend‑Reihenfolge. Beim Umordnen oder Löschen passt das Panel die Nummerierung automatisch an.
Inhalt erhalten¶
Beim Bearbeiten speichert der Block die Inhalte der .accordion-body-Bereiche zwischen und ordnet sie über die Collapse‑IDs wieder korrekt zu. Dadurch bleiben Texte und eingebettete Blöcke erhalten, auch wenn Titel, Reihenfolge oder technische IDs geändert werden.
Verhalten im Frontend¶
Das Frontend rendert das vom Panel generierte Accordion‑Markup. Die Assets accordion.css und accordion-print.js werden gezielt nur dann geladen, wenn es sich um einen Singular‑Kontext handelt und im Inhalt tatsächlich ein Accordion mit lc-helper="twtheme-accordion" enthalten ist. So werden Seiten ohne Accordion nicht mit zusätzlichem CSS/JS belastet.
Druck-Funktion¶
Ist die Druckfunktion aktiv, ergänzt das Frontend per JavaScript automatisch einen Druck‑Button oberhalb des Blocks. Für die Ausgabe gilt eine feste Reihenfolge: Zuerst wird das lokale Override aus dem Block verwendet, falls vorhanden; andernfalls die globale Theme‑Vorgabe.
Theme-Optionen: Druck-Button¶
Unter Theme-Optionen → LiveCanvas → Accordion steht das Feld Print Button HTML (accordion_print_button_html) zur Verfügung. Dieser HTML‑Code ist die globale Standardausgabe für den Druck‑Button und wird als Fallback genutzt, wenn im einzelnen Accordion kein Override gesetzt wurde. Eingehängt wird diese Option über twtheme_option_fields in den LiveCanvas‑Optionsbereich.
Entwicklertipps & Filter¶
Filter: twtheme_lc_accordion_print_button_html¶
Der konkrete Button‑HTML‑Code wird über twtheme_lc_accordion_print_button_html() bereitgestellt und über den Filter twtheme_lc_accordion_print_button_html final anpassbar gemacht. Die Auflösung erfolgt dabei immer in derselben Priorität: lokales Panel‑Override (data-print-button-html), danach Theme‑Option accordion_print_button_html, danach fester Fallback im Theme.
In der Praxis eignet sich der Filter vor allem, um ein einheitliches Button‑Design zentral zu erzwingen oder den Standardtext projektweit anzupassen.
Technische Dokumentation¶
Überblick¶
Dieses Kapitel fasst den aktuellen Stand zu accordion direkt aus dem Theme-Code zusammen.
Einstellungen¶
| Funktion | Einstellungskontext |
|---|---|
twtheme_accordionRandomId() |
Steuert den Bereich accordionRandomId. |
twtheme_enableAccordionSorting() |
Steuert den Bereich enableAccordionSorting. |
twtheme_ensureRandomAccordionId() |
Steuert den Bereich ensureRandomAccordionId. |
twtheme_lc_accordion_get_default_icon() |
[aktualisiert] Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_lc_accordion_print_button_html() |
Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_lc_accordion_print_button_markup($label = '', $position = 'top', $icon_position = null) |
[aktualisiert] Fertiges HTML für den Accordion-Druck-Button (%s durch Default-Label ersetzt). |
twtheme_lc_accordion_print_button_template() |
[aktualisiert] Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_loadAccordionItems() |
[aktualisiert] Steuert den Bereich loadAccordionItems. |
twtheme_reindexAccordion() |
Steuert den Bereich reindexAccordion. |
twtheme_toggleExpandAllOptions() |
[neu] Steuert den Bereich toggleExpandAllOptions. |
Verhalten im Frontend¶
| Funktion | Frontend-Relevanz |
|---|---|
twtheme_lc_accordion_get_default_icon() |
[aktualisiert] Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_lc_accordion_print_button_html() |
Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_lc_accordion_print_button_template() |
[aktualisiert] Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
Entwicklertipps¶
Relevante Funktionen¶
| Funktion | Parameter | Zweck |
|---|---|---|
twtheme_accordionRandomId() |
— | Steuert den Bereich accordionRandomId. |
twtheme_enableAccordionSorting() |
— | Steuert den Bereich enableAccordionSorting. |
twtheme_ensureRandomAccordionId() |
— | Steuert den Bereich ensureRandomAccordionId. |
twtheme_lc_accordion_get_default_icon() |
— | [aktualisiert] Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_lc_accordion_print_button_html() |
— | Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_lc_accordion_print_button_markup($label = '', $position = 'top', $icon_position = null) |
$label: Ausgabe-/Textinhalt (Standard: ''); $position: Funktionsparameter (Standard: 'top'); $icon_position: Funktionsparameter (Standard: null) |
[aktualisiert] Fertiges HTML für den Accordion-Druck-Button (%s durch Default-Label ersetzt). |
twtheme_lc_accordion_print_button_template() |
— | [aktualisiert] Accordion: Frontend- und Backend-Funktionalität außerhalb des LC-Editors. |
twtheme_loadAccordionItems() |
— | [aktualisiert] Steuert den Bereich loadAccordionItems. |
twtheme_reindexAccordion() |
— | Steuert den Bereich reindexAccordion. |
twtheme_toggleExpandAllOptions() |
— | [neu] Steuert den Bereich toggleExpandAllOptions. |
twtheme_togglePrintOptions() |
— | Steuert den Bereich togglePrintOptions. |
Hooks & Filter¶
| Hook/Filter | Typ | Parameter | Zweck |
|---|---|---|---|
twtheme_lc_accordion_print_button_html |
apply_filters |
- | [aktualisiert] Hook twtheme_lc_accordion_print_button_html wird via apply_filters eingebunden. |
twtheme_lc_accordion_print_button_label |
apply_filters |
- | [aktualisiert] Hook twtheme_lc_accordion_print_button_label wird via apply_filters eingebunden. |
twtheme_lc_accordion_print_button_position |
apply_filters |
- | [neu] Hook twtheme_lc_accordion_print_button_position wird via apply_filters eingebunden. |
twtheme_lc_accordion_toggle_all_label_collapse |
apply_filters |
- | [neu] Hook twtheme_lc_accordion_toggle_all_label_collapse wird via apply_filters eingebunden. |
twtheme_lc_accordion_toggle_all_label_expand |
apply_filters |
- | [neu] Hook twtheme_lc_accordion_toggle_all_label_expand wird via apply_filters eingebunden. |
twtheme_lc_accordion_toggle_all_position |
apply_filters |
- | [neu] Hook twtheme_lc_accordion_toggle_all_position wird via apply_filters eingebunden. |
twtheme_option_fields |
add_filter |
Callback: Closure |
Hook twtheme_option_fields wird via add_filter eingebunden. |
Stand: 2026-03-11