WBCE CMS – Way Better Content Editing.
You are not logged in.
Hallo zusammen,
heute möchte ich Euch das neue Modul "TemplateBuilder" vorstellen.
Claude hat richtig reingeklotzt und wir machen gute Fortschritte.
# TemplateBuilder für WBCE CMS – Modul-Vorstellung
---
## ?? Deutsch
### TemplateBuilder – Visueller Template-Generator für WBCE CMS
Der **TemplateBuilder** ist ein Admin-Tool-Modul für WBCE CMS, das die Erstellung professioneller Frontend-Templates ohne manuelle Programmierung ermöglicht. Über eine übersichtliche Benutzeroberfläche werden alle wesentlichen Design-Entscheidungen getroffen – der Generator erstellt daraus ein vollständiges, installierbares WBCE-Template.
#### Funktionen
**Struktur & Layout**
- 3 Header-Layouts: Logo links/Nav rechts (A), Logo zentriert/Nav darunter (C), Nav-Bar unter Header (E)
- Sticky-Optionen: Header sticky, nur Navbar sticky, kein Sticky
- Seitenlayout: Vollbild, Sidebar rechts, Sidebar links
- Utility-Bar (optionale Leiste über dem Header)
**Navigation**
- 3 eingebaute Nav-Styles: Classic (Horizontal mit Dropdown), Underline (Textlinks mit animierter Linie), Overlay (Fullscreen-Overlay)
- Jeder Style ist individuell konfigurierbar (Schriftgröße, Abstände, Breakpoints, Panel-Breite u.v.m.)
- Burger-Menü mit X-Animation für Mobile
- Suche: Suchfeld im Header oder Lupe im Menü
**Farben & Typografie**
- 12 vordefinierte Farbschemas als Ausgangspunkt
- Vollständige Farbkontrolle: Header, Navigation, Footer, Dropdown, Links
- Google Fonts Integration: 10 vorinstallierte Fonts + freie Eingabe
- Schriftstärken für Fließtext und Überschriften
- H1–H6 Größen individuell einstellbar
**Footer**
- Bis zu 3 Footer-Zeilen, jede mit eigener Spaltenanzahl (1–3), Section-IDs und Farben
**Automatisierung**
- Automatische Anlage einer „Template-Sections" Seite mit allen benötigten WYSIWYG-Sections
- Direkte Edit-Links zu den Sections aus dem TemplateBuilder heraus
- Template duplizieren (inkl. Settings und Verzeichnis)
- ZIP-Export des generierten Templates
#### Technische Details
- Generiert vollständige WBCE-Templates (index.php, info.php, style.css, nav.css, nav.js)
- CSS-Variablen-basiertes Design-System
- Kompatibel mit WBCE CMS ab Version 1.4
- Lizenz: GNU GPL
#### Status
**Beta / Community-Test** – Version 1.0.4
Das Modul befindet sich in aktiver Entwicklung. Feedback, Fehlerberichte und Verbesserungsvorschläge sind willkommen.
---
## ?? English
### TemplateBuilder – Visual Template Generator for WBCE CMS
The **TemplateBuilder** is an admin tool module for WBCE CMS that enables the creation of professional frontend templates without manual coding. All essential design decisions are made through a clear user interface – the generator then creates a complete, installable WBCE template.
#### Features
**Structure & Layout**
- 3 header layouts: Logo left/Nav right (A), Logo centered/Nav below (C), Nav bar below header (E)
- Sticky options: sticky header, sticky navbar only, no sticky
- Page layout: full width, sidebar right, sidebar left
- Utility bar (optional bar above the header)
**Navigation**
- 3 built-in nav styles: Classic (horizontal with dropdown), Underline (text links with animated underline), Overlay (fullscreen overlay)
- Each style is individually configurable (font size, spacing, breakpoints, panel width and more)
- Burger menu with X animation for mobile
- Search: search field in header or magnifier icon in menu
**Colors & Typography**
- 12 predefined color schemes as a starting point
- Full color control: header, navigation, footer, dropdown, links
- Google Fonts integration: 10 pre-installed fonts + custom input
- Font weights for body text and headings
- H1–H6 sizes individually adjustable
**Footer**
- Up to 3 footer rows, each with individual column count (1–3), section IDs and colors
**Automation**
- Automatic creation of a "Template-Sections" page with all required WYSIWYG sections
- Direct edit links to sections from within the TemplateBuilder
- Template duplication (including settings and directory)
- ZIP export of the generated template
#### Technical Details
- Generates complete WBCE templates (index.php, info.php, style.css, nav.css, nav.js)
- CSS variables-based design system
- Compatible with WBCE CMS from version 1.4
- License: GNU GPL
#### Status
**Beta / Community Test** – Version 1.0.4
The module is under active development. Feedback, bug reports and suggestions for improvement are welcome.
Last edited by rudi222 (23.05.2026 21:23:06)
Online
Erstmal vielen Dank für dieses Modul.
Ich möchte kurz voranstellen, dass rudi222 zunächst mich gefragt hat, ob ich damit einverstanden bin, dass ein Templatebuilder für WBCE veröffentlicht wird, und somit Designer:innen direkt Konkurrenz gemacht wird.
Bin ich, denn meine Meinung dazu ist:
Man kann ja bereits jetzt schon mit KI-Baukästen von Fachwissen unvorbelastet sich mehr oder weniger überzeugende Seiten zusammenklicken. Die meisten nehmen/wollen/kennen ja sowieso nur Wordpress, und da hast du mit Elementor usw. auch freies Spiel, was die Gestaltung angeht.
[...]
Ich hätte vielleicht vor drei, vier Jahren, als ich noch hauptberuflicher Webdesigner war und in der Tat meine Brötchen damit verdient habe, anders darüber gedacht. Inzwischen ist auch die allgemeine die Ausgangssituation mit KI eine völlig andere.Und: es steht ja schon jetzt jedem frei, die KI der Wahl zu bitten, ein schönes Template für WBCE zu bauen.
Im weiteren Verlauf hatte ich dann auf die neuen Möglichkeiten von WBCE 1.7.0 hingewiesen. Die Arbeiten an dieser Version sind schon sehr weit fortgeschritten. Ein genauer Veröffentlichungstermin steht noch nicht fest, aber es wird nicht mehr all zu lange dauern.
Zu diesen neuen Möglichkeiten zählen unter anderem die (keine Angst: abwärtskompatible) Umstellung der Datenbankkommunikation auf PDO sowie ein Layoutparser.
Ich hatte angeregt, das Modul darauf abzustimmen.
Das hat rudi222 bzw. Claude dann wohl auch gemacht und deshalb ist der Templatebuilder mit WBCE <= 1.6.7 aktuell nicht lauffähig - konkret, das BE bleibt leer und im Errorlog erscheinen die folgenden Meldungen:
[23-May-2026 18:27:12 UTC] Table '...._mod_templatebuilder_nav_styles' doesn't exist
[23-May-2026 18:27:12 UTC] SELECT * FROM ..._mod_templatebuilder_nav_styles ORDER BY is_builtin DESC, name
2026-05-23T18:27:12+00:00 [Visitor Request] .../admin/admintools/tool.php?tool=templatebuilder
2026-05-23T18:27:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/tool.php:[1406] database->query "STATEMENT: SELECT * FROM t0520_mod_templatebuilder_nav_styles ORDER BY is_builtin DESC, name"
2026-05-23T18:27:12+00:00 [Exception] There was an unknown exception: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, null given in line (737) of /framework/class.database.php
Edit: Problem vom TO behoben behoben in 1.0.5
Last edited by florian (23.05.2026 22:06:19)
Nicht ärgern. Nur wundern.
Offline
beach
Ich sehe da auch ehrlich gesagt keine Konkurrenz.
Einen Themenspeicher hierzu hatte ich auch im März auf Anregung von byteworker zur Diskussion gestellt.
https://forum.wbce.org/viewtopic.php?pid=46713#p46713
Last edited by Slugger (23.05.2026 20:58:22)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
byteworker
Das hat rudi222 bzw. Claude dann wohl auch gemacht und deshalb ist der Templatebuilder mit WBCE <= 1.6.7 aktuell nicht lauffähig - konkret, das BE bleibt leer und im Errorlog erscheinen die folgenden Meldungen:
[23-May-2026 18:27:12 UTC] Table '...._mod_templatebuilder_nav_styles' doesn't exist
[23-May-2026 18:27:12 UTC] SELECT * FROM ..._mod_templatebuilder_nav_styles ORDER BY is_builtin DESC, name
2026-05-23T18:27:12+00:00 [Visitor Request] .../admin/admintools/tool.php?tool=templatebuilder
2026-05-23T18:27:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/tool.php:[1406] database->query "STATEMENT: SELECT * FROM t0520_mod_templatebuilder_nav_styles ORDER BY is_builtin DESC, name"
2026-05-23T18:27:12+00:00 [Exception] There was an unknown exception: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, null given in line (737) of /framework/class.database.php
Kleiner Fehler in der install.php. Mit der V1.0.5 korrigiert.
Es sollte jetzt bedienbar sein.
Gruß Rudi
Last edited by rudi222 (23.05.2026 21:28:42)
Online
Yep, funktioniert jetzt auch mit 1.6.7.
Ich weiß nicht, woran es liegt, und es lässt sich weder verlässlich reproduzieren, noch erscheinen Einträge im Errorlog. Aber wenn ich irgendwo Änderungen vornehme und auf Speichern klicke, wird manchmal nicht gespeichert, sondern das BE ist leer.
Gehe ich dann wieder in den TB und nehme erneut die Änderung vor, wird sie anstandslos übernommen.
Beim Blick in den Code ist mir aufgefallen, dass sehr sparsam mit Backticks umgegangen wird, das kann bei bestimmten Datenbankkonstellationen zu Problemen führen, wenn z.B. Zeilenbezeichnungen wie id oder name gleichzeitig geschützte Begriffe sind.
Weiterhin ist das Backend derzeit nicht templatebasiert und alle Texte sind direkt in der tool.php hinterlegt. Für eine Mehrsprachigkeit müsste das geändert werden.
Bei Struktur > Farbschema gibt es kein Feedback, d.h. die aktuelle Auswahl wird nicht irgendwie hervorgehoben o.ä.
Logo -> Upload für Grafik einbauen
Es wird eine Seite "Template Sections" angelegt, an die ich nicht mal als Superadmin rankomme - aufgrund unvollständiger Angaben in der pages-Tabelle. Absicht?
Aber davon abgesehen - um mal eben schnell eine einfache Seite, z.B. als Doku o.ä. aufzusetzen, genial.
Last edited by florian (23.05.2026 22:03:37)
Nicht ärgern. Nur wundern.
Offline
Einige Fragen von mir:
Beim Generieren des Templates wird die Seite "Template-Sections" mit wysiwyg-Sections angelegt. Ist die angelegte Seite so problemlos bzw. erlaubt? Sie ist zur Zeit nicht editierbar. Es sollen natürlich auch andere (nicht wysiwyg) Sectionen möglich sein. Daher muss die Seite editierbar werden.
Was ist sinnvol noch im Tab "Weitere Elemente" aufzunehmen? Beispielsweise Buttons.
Gibt es grundsätzliche Funktionen die fehlen?
Kleines Update V1.07, Anpassungen der Masken.
Online
Speichern-Button in v1.0.7 ohne Funktion, Generieren-Button fehlt
Nicht ärgern. Nur wundern.
Offline
"Speichern"-Bug behoben.
- Backticks sind eingebaut.
- Bei Struktur > Farbschema Feedback eingebaut
- Logo -> Upload für Grafik eingebaut
templatebasiert Backend auf später verschoben.
Das leere BE nach speichern ist nerfig.
Online
Was ich toll finden würde: ein paar Screenshots.
Ich finde es immer sehr schade, dass es keine Screenshots gibt wenn neue Module vorgestellt werden. (Man hat nicht immer Zeit alles zu testen.)
Klingt aber auf jeden Fall interessant.
Und ich finde es super, dass immer mehr Bewegung entsteht, immer mehr Module.
Es ist absolut in Ordnung mit KI zu experimentieren, zu lernen und die eigene Programmierung zu verbessern oder effizienter zu machen.
Im weiteren Verlauf hatte ich dann auf die neuen Möglichkeiten von WBCE 1.7.0 hingewiesen. Die Arbeiten an dieser Version sind schon sehr weit fortgeschritten. Ein genauer Veröffentlichungstermin steht noch nicht fest, aber es wird nicht mehr all zu lange dauern.
Zu diesen neuen Möglichkeiten zählen unter anderem die (keine Angst: abwärtskompatible) Umstellung der Datenbankkommunikation auf PDO sowie ein Layoutparser.
Die 1.7.0 ist tatsächlich sehr weit vorangeschritten. Ich muss mich kurzfristig um etwas kümmern, bevor ich weiter machen kann, aber es wird nicht mehr lange dauern.
Ich habe schon an vielen WBCE Versionen mitgewirkt und mich jedes Mal sehr über das Release gefreut. Dieses ist aber sehr besondern, weil sehr viele Sachen bereinigt wurden und einige sehr sinnvolle Ergänzungen dazu gekommen sind (die, die Florian erwähnt hat und einiges mehr).
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Online
beach
Hier eine aktualisierte Version 1.1.5 mit Mini-Colorpicker mit JavaSript
Und noch die gewünschten Screenshots:
Online
stefanek
Danke.
Installation wirft Fehler im BE & im Errorlog
[24-May-2026 06:02:12 UTC] Table 'd041f884.t0520_mod_templatebuilder_presets WHERE name = 'Standard (Hell)'' doesn't exist
[24-May-2026 06:02:12 UTC] SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Standard (Hell)'`
2026-05-24T06:02:12+00:00 [Visitor Request] .../admin/modules/install.php
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Standard (Hell)'`"
[24-May-2026 06:02:12 UTC] Incorrect table name 't0520_mod_templatebuilder_presets
(name, description, settings_json)
VA'
[24-May-2026 06:02:12 UTC] INSERT INTO `t0520_mod_templatebuilder_presets
(name, description, settings_json)
VALUES ('Standard (Hell)', 'Klassisches helles Layout mit blauem Akzent', '{\"layout\":{\"type\":\"full\",\"wrapper_width\":\"1200px\",\"sidebar_width\":\"280px\"},\"colors\":{\"primary\":\"#2c3e50\",\"secondary\":\"#ecf0f1\",\"accent\":\"#3498db\",\"text\":\"#333333\",\"bg\":\"#ffffff\"},\"header\":{\"height\":\"70px\",\"bg\":\"#2c3e50\",\"text_color\":\"#ffffff\"},\"navigation\":{\"type\":\"horizontal\",\"bg\":\"transparent\",\"text_color\":\"#ffffff\",\"hover_bg\":\"#3498db\",\"hover_text\":\"#ffffff\"},\"footer\":{\"cols\":\"1\",\"bg\":\"#2c3e50\",\"text_color\":\"#ecf0f1\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"45px\"},\"typography\":{\"font_family\":\"\'Helvetica Neue\', Arial, sans-serif\",\"font_size_base\":\"16px\",\"line_height\":\"1.6\"}}')`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: INSERT INTO `t0520_mod_templatebuilder_presets (name, description, settings_json) VALUES ('Standard (Hell)', 'Klassisches helles Layout mit blauem Akzent', '{\"layout\":{\"type\":\"full\",\"wrapper_width\":\"1200px\",\"sidebar_width\":\"280px\"},\"colors\":{\"primary\":\"#2c3e50\",\"secondary\":\"#ecf0f1\",\"accent\":\"#3498db\",\"text\":\"#333333\",\"bg\":\"#ffffff\"},\"header\":{\"height\":\"70px\",\"bg\":\"#2c3e50\",\"text_color\":\"#ffffff\"},\"navigation\":{\"type\":\"horizontal\",\"bg\":\"transparent\",\"text_color\":\"#ffffff\",\"hover_bg\":\"#3498db\",\"hover_text\":\"#ffffff\"},\"footer\":{\"cols\":\"1\",\"bg\":\"#2c3e50\",\"text_color\":\"#ecf0f1\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"45px\"},\"typography\":{\"font_family\":\"\'Helvetica Neue\', Arial, sans-serif\",\"font_size_base\":\"16px\",\"line_height\":\"1.6\"}}')`"
[24-May-2026 06:02:12 UTC] Table 'd041f884.t0520_mod_templatebuilder_presets WHERE name = 'Dark Theme'' doesn't exist
[24-May-2026 06:02:12 UTC] SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Dark Theme'`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Dark Theme'`"
[24-May-2026 06:02:12 UTC] Incorrect table name 't0520_mod_templatebuilder_presets
(name, description, settings_json)
VA'
[24-May-2026 06:02:12 UTC] INSERT INTO `t0520_mod_templatebuilder_presets
(name, description, settings_json)
VALUES ('Dark Theme', 'Dunkles Layout mit orangem Akzent', '{\"layout\":{\"type\":\"full\",\"wrapper_width\":\"1200px\",\"sidebar_width\":\"280px\"},\"colors\":{\"primary\":\"#1a1a2e\",\"secondary\":\"#16213e\",\"accent\":\"#e94560\",\"text\":\"#eaeaea\",\"bg\":\"#0f3460\"},\"header\":{\"height\":\"70px\",\"bg\":\"#1a1a2e\",\"text_color\":\"#eaeaea\"},\"navigation\":{\"type\":\"horizontal\",\"bg\":\"transparent\",\"text_color\":\"#eaeaea\",\"hover_bg\":\"#e94560\",\"hover_text\":\"#ffffff\"},\"footer\":{\"cols\":\"2\",\"bg\":\"#1a1a2e\",\"text_color\":\"#aaaaaa\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"45px\"},\"typography\":{\"font_family\":\"\'Helvetica Neue\', Arial, sans-serif\",\"font_size_base\":\"16px\",\"line_height\":\"1.7\"}}')`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: INSERT INTO `t0520_mod_templatebuilder_presets (name, description, settings_json) VALUES ('Dark Theme', 'Dunkles Layout mit orangem Akzent', '{\"layout\":{\"type\":\"full\",\"wrapper_width\":\"1200px\",\"sidebar_width\":\"280px\"},\"colors\":{\"primary\":\"#1a1a2e\",\"secondary\":\"#16213e\",\"accent\":\"#e94560\",\"text\":\"#eaeaea\",\"bg\":\"#0f3460\"},\"header\":{\"height\":\"70px\",\"bg\":\"#1a1a2e\",\"text_color\":\"#eaeaea\"},\"navigation\":{\"type\":\"horizontal\",\"bg\":\"transparent\",\"text_color\":\"#eaeaea\",\"hover_bg\":\"#e94560\",\"hover_text\":\"#ffffff\"},\"footer\":{\"cols\":\"2\",\"bg\":\"#1a1a2e\",\"text_color\":\"#aaaaaa\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"45px\"},\"typography\":{\"font_family\":\"\'Helvetica Neue\', Arial, sans-serif\",\"font_size_base\":\"16px\",\"line_height\":\"1.7\"}}')`"
[24-May-2026 06:02:12 UTC] Incorrect table name 't0520_mod_templatebuilder_presets WHERE name = 'Blog mit Sidebar''
[24-May-2026 06:02:12 UTC] SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Blog mit Sidebar'`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Blog mit Sidebar'`"
[24-May-2026 06:02:12 UTC] Incorrect table name 't0520_mod_templatebuilder_presets
(name, description, settings_json)
VA'
[24-May-2026 06:02:12 UTC] INSERT INTO `t0520_mod_templatebuilder_presets
(name, description, settings_json)
VALUES ('Blog mit Sidebar', 'Helles Layout mit rechter Sidebar, geeignet für Blogs', '{\"layout\":{\"type\":\"sidebar\",\"wrapper_width\":\"1100px\",\"sidebar_width\":\"300px\"},\"colors\":{\"primary\":\"#3d5a80\",\"secondary\":\"#f8f9fa\",\"accent\":\"#ee6c4d\",\"text\":\"#2d2d2d\",\"bg\":\"#ffffff\"},\"header\":{\"height\":\"80px\",\"bg\":\"#3d5a80\",\"text_color\":\"#ffffff\"},\"navigation\":{\"type\":\"horizontal\",\"bg\":\"transparent\",\"text_color\":\"#ffffff\",\"hover_bg\":\"#ee6c4d\",\"hover_text\":\"#ffffff\"},\"footer\":{\"cols\":\"3\",\"bg\":\"#3d5a80\",\"text_color\":\"#e0fbfc\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"45px\"},\"typography\":{\"font_family\":\"Georgia, \'Times New Roman\', serif\",\"font_size_base\":\"17px\",\"line_height\":\"1.8\"}}')`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: INSERT INTO `t0520_mod_templatebuilder_presets (name, description, settings_json) VALUES ('Blog mit Sidebar', 'Helles Layout mit rechter Sidebar, geeignet für Blogs', '{\"layout\":{\"type\":\"sidebar\",\"wrapper_width\":\"1100px\",\"sidebar_width\":\"300px\"},\"colors\":{\"primary\":\"#3d5a80\",\"secondary\":\"#f8f9fa\",\"accent\":\"#ee6c4d\",\"text\":\"#2d2d2d\",\"bg\":\"#ffffff\"},\"header\":{\"height\":\"80px\",\"bg\":\"#3d5a80\",\"text_color\":\"#ffffff\"},\"navigation\":{\"type\":\"horizontal\",\"bg\":\"transparent\",\"text_color\":\"#ffffff\",\"hover_bg\":\"#ee6c4d\",\"hover_text\":\"#ffffff\"},\"footer\":{\"cols\":\"3\",\"bg\":\"#3d5a80\",\"text_color\":\"#e0fbfc\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"45px\"},\"typography\":{\"font_family\":\"Georgia, \'Times New Roman\', serif\",\"font_size_base\":\"17px\",\"line_height\":\"1.8\"}}')`"
[24-May-2026 06:02:12 UTC] Table 'd041f884.t0520_mod_templatebuilder_presets WHERE name = 'Minimal'' doesn't exist
[24-May-2026 06:02:12 UTC] SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Minimal'`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: SELECT id FROM `t0520_mod_templatebuilder_presets WHERE name = 'Minimal'`"
[24-May-2026 06:02:12 UTC] Incorrect table name 't0520_mod_templatebuilder_presets
(name, description, settings_json)
VA'
[24-May-2026 06:02:12 UTC] INSERT INTO `t0520_mod_templatebuilder_presets
(name, description, settings_json)
VALUES ('Minimal', 'Reduziertes Layout mit Burger-Menü', '{\"layout\":{\"type\":\"full\",\"wrapper_width\":\"960px\",\"sidebar_width\":\"260px\"},\"colors\":{\"primary\":\"#222222\",\"secondary\":\"#f5f5f5\",\"accent\":\"#888888\",\"text\":\"#222222\",\"bg\":\"#ffffff\"},\"header\":{\"height\":\"60px\",\"bg\":\"#ffffff\",\"text_color\":\"#222222\"},\"navigation\":{\"type\":\"burger\",\"bg\":\"transparent\",\"text_color\":\"#222222\",\"hover_bg\":\"#f5f5f5\",\"hover_text\":\"#222222\"},\"footer\":{\"cols\":\"1\",\"bg\":\"#f5f5f5\",\"text_color\":\"#888888\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"40px\"},\"typography\":{\"font_family\":\"\'Helvetica Neue\', Arial, sans-serif\",\"font_size_base\":\"15px\",\"line_height\":\"1.6\"}}')`
2026-05-24T06:02:12+00:00 [User Notice] /framework/class.database.php:[333] from /modules/templatebuilder/install.php:[283] database->query "STATEMENT: INSERT INTO `t0520_mod_templatebuilder_presets (name, description, settings_json) VALUES ('Minimal', 'Reduziertes Layout mit Burger-Menü', '{\"layout\":{\"type\":\"full\",\"wrapper_width\":\"960px\",\"sidebar_width\":\"260px\"},\"colors\":{\"primary\":\"#222222\",\"secondary\":\"#f5f5f5\",\"accent\":\"#888888\",\"text\":\"#222222\",\"bg\":\"#ffffff\"},\"header\":{\"height\":\"60px\",\"bg\":\"#ffffff\",\"text_color\":\"#222222\"},\"navigation\":{\"type\":\"burger\",\"bg\":\"transparent\",\"text_color\":\"#222222\",\"hover_bg\":\"#f5f5f5\",\"hover_text\":\"#222222\"},\"footer\":{\"cols\":\"1\",\"bg\":\"#f5f5f5\",\"text_color\":\"#888888\"},\"logo\":{\"type\":\"text\",\"position\":\"left\",\"height\":\"40px\"},\"typography\":{\"font_family\":\"\'Helvetica Neue\', Arial, sans-serif\",\"font_size_base\":\"15px\",\"line_height\":\"1.6\"}}')`"
Funktioniert aber trotzdem. Die Presets sind allerdings dadurch verschwunden.
Zur Farbzuordnung - nach dem Speichern wird das ausgewählte Farbschema hervorgehoben, aber nicht, wenn man draufgeklickt hat.
Frage ist, ob diese Auswahl nicht sowieso auf dem Reiter "Struktur" fehlplaziert ist oder nicht direkt auf dem Reiter "Farben" platziert werden sollte.
Dann entfiele die Notwendigkeit der Hervorhebung und man liefe auch nicht Gefahr, versehentlich eigene Farbkombinationen zu überschreiben.
Dito Struktur > Nav-Styles / Reiter Navigation.
Typografie > Eigene Font...:
"Exakter CSS font-family Wert. Google Font-Name wird automatisch eingebunden." => verstehe ich so, dass wenn ich da z.B. da "Outfit" eintrage, sich der TB automatisch den Font von Google zieht. Passiert aber nicht.
Beim Upload des Logos gehen alle nicht gespeicherten Einstellungen verloren.
Der "Ausfall" beim Speichern kommt, wenn aus unerfindlichen Gründen irgendwoher der Parameter lang=de eingefügt wird.
Last edited by florian (24.05.2026 08:30:25)
Nicht ärgern. Nur wundern.
Offline
Einige Fragen von mir:
Gibt es grundsätzliche Funktionen die fehlen?
.
Vielleicht Language Switch?
Wenn man mehrsprachige Seiten betreibt, wäre es sinnvoll.
Offline
Einige Fragen von mir:
Gibt es grundsätzliche Funktionen die fehlen?
.
Ja ein Importer, der aus Vorlagen von HTML-Grundgerüsten, Design-CSS oder sogenannte "style-Dateien" - Legacy Free in den Builder konvertieren kann. Nice2have 
Optional - Modul vorhanden? bei JA:
- Templateswitcher AN/AUS -Testmodus
- Wartungsmodushinweisseiteneditiertool 
Last edited by Slugger (25.05.2026 12:02:51)
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4: OK
Online
Hallo!
Vorschläge/Fehler habe ich aufgenommen. Den Import von Templates und Html/CSS Vorlagen habe ich in den letzten Tagen mit Claude diskutiert.
Mein Fazit für den TemplateBuilder:
Das W3C-Format lohnt sich im Moment nicht als Import-Ziel – zu jung, zu wenig verfügbare Quellen, zu aufwändiges Mapping.
Was stattdessen sinnvoll wäre:1. TemplateBuilder → TemplateBuilder – eigenes JSON-Format, vollständiger Import/Export, Community kann Themes teilen
2. CSS Custom Properties Import – funktioniert mit modernen HTML-Templates die :root Variablen nutzen (immer mehr Standard)
3. WordPress theme.json Import – WordPress nutzt seit Gutenberg theme.json mit Design Tokens die zu CSS-Variablen kompiliert werden – davon gibt es tausende freie Themes.
Besonders Option 3 wäre interessant – WordPress-Themes sind massenhaft verfügbar und viele moderne nutzen theme.json. Das wäre ein realistischer Import-Weg.
Anbei die aktuelle Version 1.3.4: Der Installations-Bug sollte behoben sein. Bei mir (wbce 1.6.7, php 8.3.30) funktioniert es.
Hier die Änderungen seit Version 1.1.5:
**1.1.6** – Speichern abgesichert
- Speichern-Button gegen Doppelklick gesperrt
- Bulk-INSERT in 20er-Gruppen aufgeteilt (verhindert `max_allowed_packet` Überschreitung)
**1.1.7** – Frontend-Anmeldung
- Tab „Logo / Suche / Login" (umbenannt)
- Position: Aus / Im Header / Im Menü
- Text „Anmeldung" / „Abmelden" einstellbar
- Login-`<li>` per JS in `<ul>` verschoben
**1.1.8** – Fixes
- Tab umbenannt zu „Logo / Suche / Login"
- Login-`<li>` per JS in `<ul>` verschoben (analog Suche)
**1.1.9** – Login URLs korrigiert
- `LOGIN_URL` / `LOGOUT_URL` / `FRONTEND_LOGIN` statt hartcodierter Pfade
**1.2.0** – Login via WBCE-Konstanten
- `$wb->is_authenticated()` für Login-Status
- Korrekte WBCE-Konstanten für URLs
**1.2.1** – Hover-Farben
- Header: Link Hover-Farbe
- Utility-Bar: Link Hover-Farbe
- Footer: Link Hover-Farbe je Zeile
- Footer-Überschriften erben `currentColor`
**1.2.2** – Footer CSS
- Überschriften, HR im Footer erben Zeilenfarbe via `currentColor`
**1.2.3** – Buttons
- Button Primär: Farben, Ecken, Padding, Schriftgröße, Schriftstärke
- Button Sekundär: Farben, Rahmen-Stärke
- CSS-Variablen `--btn-*` und `--btn2-*`
**1.2.4** – Links, Bilder, Formulare
- Links: Unterstreichung, Hover-Unterstreichung
- Bilder: Ecken, Schatten, Rahmen
- Formulare: Farben, Ecken, Padding, Fokus-Farbe
- CSS-Variablen für alle drei Bereiche
**1.2.5** – Box
- CSS-Klasse `.box` für Container-Elemente
- Farben, Ecken, Schatten, Padding einstellbar
**1.2.6** – Spacing-System
- `--spacing-paragraph`, `--spacing-element`, `--spacing-section`
- Felder im Typografie-Tab
**1.2.7** – CSS-Editor
- Button „? CSS bearbeiten" in Aktionsleiste
- Dunkler Editor mit Zeilennummern
- Tab-Support, Strg+S
- Datei-Wechsel style.css ↔ nav.css
**1.2.8** – Zeilennummern Fix
- Korrekte Darstellung der Zeilennummern
**1.2.9** – Gefilterter CSS-Editor
- „✏ CSS" Buttons in jedem Tab-Abschnitt
- Editor zeigt nur den relevanten CSS-Block
- Abschnitts-Merge beim Speichern
- „Alles anzeigen" Toggle
**1.3.0** – Backend-CSS Umstellung
- Inline `<style>` durch separate `backend.css` ersetzt
- Tab-Stil analog FlexSection (Reiter)
**1.3.1** – Tab-Stil + Details/Summary
- Aktiver Tab sitzt korrekt auf Inhalt
- Header-Tab: aufklappbare Abschnitte
- Felder-Breite begrenzt
**1.3.2** – Details/Summary alle Tabs
- Trennlinie oberhalb klappbarer Abschnitte
- CSS-Button rechtsbündig
- Felder-Breite `max-width: 320px`
- Footer-Zeilen als klappbare Abschnitte
**1.3.3** – Details/Summary komplett
- Alle Tabs (außer Allgemein + Farben) umgestellt
- Footer-Zeilen: Aktiv-Checkbox im Summary
**1.3.4** – Installations-Fix
- Backticks in `install.php` korrigiert
- `SELECT id FROM \`tabelle\`` statt `SELECT id FROM \`tabelle WHERE...\``
Online
Hallo zusammen,
zur Weiterentwicklung des TemplateBuilder möchte ich eine geplante Neustrukturierung der Editor-Oberfläche zur Diskussion stellen. Ziel ist eine klarere, intuitivere Aufteilung der Einstellungen.
Aktuelle Struktur (10 Tabs):
Allgemein · Struktur · Layout · Farben · Header · Navigation · Footer · Typografie · Weitere Elemente · Logo / Suche / Login
Geplante Struktur (6 Tabs):
1. Allgemein
Template-Name, Verzeichnis, Beschreibung, Autor, Version
2. Globale Einstellungen
Seitenlayout, Max. Seitenbreite, Sidebar-Breite, Innenabstand · Farbschema, Grundfarben · Typografie (Fließtext, Überschriften, Abstände)
3. Navigation
Nav-Typ, Nav-Style · Nav-Bar Farben · Menü-Farben · Dropdown-Farben
4. Seiten-Kopf (Header)
Header-Layout · Header (Sticky, Höhe, Farben) · Utility-Bar · Logo · Suche · Frontend-Anmeldung
5. Design-Elemente
Button Primär · Button Sekundär · Links · Bilder · Formulare · Box · Listen · Trennlinie (HR) · Tabellen
6. Seiten-Abschluss (Footer)
Footer Zeile 1, 2, 3 (je Spalten, Section-IDs, Farben, Hover)
Die aktuelle Aufteilung auf 10 Tabs ist historisch gewachsen und nicht immer logisch. Die neue Struktur orientiert sich an der visuellen Hierarchie einer Webseite (Kopf → Inhalt → Abschluss) und fasst thematisch zusammengehörige Einstellungen zusammen. „Globale Einstellungen" bündelt alles was seitenweit gilt, ohne einem bestimmten Bereich zuzugehören.
Geplante Erweiterung:
In späteren Versionen sollen Design-Elemente wie Buttons, Bilder, Links usw. auch direkt im Seiten-Kopf und Seiten-Abschluss konfigurierbar sein. Der Tab „Design-Elemente" kann dann in „Seiten-Inhalt" umbenannt werden und deckt den gesamten Content-Bereich ab.
Ist die neue Aufteilung für euch intuitiv und nachvollziehbar?
Fehlt etwas oder sollte etwas anders gruppiert werden?
Habt ihr Vorschläge zur Benennung der Tabs?
Über Feedback freue ich mich!
VG
Rudi
Online
florian
Gute Idee.
Zur 1.3.4: lässt sich jetzt problemlos installieren.
Die Presets scheinen allerdings jetzt irgendwie alle gleich auszusehen.
Auch noch zu beobachten
Typografie > Eigene Font...:
"Exakter CSS font-family Wert. Google Font-Name wird automatisch eingebunden." => verstehe ich so, dass wenn ich da z.B. da "Outfit" eintrage, sich der TB automatisch den Font von Google zieht. Passiert aber nicht.Beim Upload des Logos gehen alle nicht gespeicherten Einstellungen verloren.
Der "Ausfall" beim Speichern kommt, wenn aus unerfindlichen Gründen irgendwoher der Parameter lang=de eingefügt wird.
(siehe oben)
Featurewunsch: editor.css generieren, so dass man auch im Backend im WYSIWYG mehr oder weniger dieselben Formatierungen sieht wie im Frontend
Nicht ärgern. Nur wundern.
Offline
Moin Moin,
der Fehler beim speichern konnte noch nicht richtig behoben werden. Claude konnte nicht festmachen wie und wo der Paramater "lang=de" generiert wird. Es kommt aber aus dem Core. Wo kann man suchen, Doku admin-tools?
In der V1.4.4 ist jetzt AJAX-Speichern eingebaut um den Fehler zu umgehen.
(Beim Speichern der Font-Einstellung kommt sporadisch noch ein Fehlverhalten)
Die freie Eingabe von Google-Fonts ist jetzt OK. Eingabe des Font-Namen ist ausreichend.
**1.3.5** – Aktiver Tab bleibt erhalten
- Tab-Zustand in `localStorage` gespeichert
- Nach CSS-Editor Rückkehr korrekter Tab via URL-Parameter
- Pro Template eigener Schlüssel
**1.3.6** – Vier Fixes
- CSS-Editor-Buttons: `is_installed` → `css_exists` (prüft Dateisystem)
- Logo-Upload: Warnung vor ungespeicherten Änderungen
- CSS-Klassen Hinweise bei Button Primär, Sekundär und Box
- Farbvorlage: sofortige Hervorhebung beim Klicken (ohne Speichern)
**1.3.7** – `lang=DE` Speichern-Fix (Versuch 1)
- `action` und `id` als POST-Hidden-Fields statt URL-Parameter
- `$_POST['action']` statt `$_REQUEST['action']`
- `ADMIN_URL` statt `WB_URL`
**1.3.8** – Font-Fixes
- Option umbenannt zu „Google Font – freie Eingabe…"
- Font-Name ohne Hochkommas eingeben, Generator ergänzt sie automatisch
- Status-Anzeige in Template-Liste repariert (`css_exists` in `tb_get_templates`)
**1.3.9** – Weitere Fixes
- Font-Select springt nicht mehr zurück nach Speichern
- Sprung zur Template-Liste abgesichert: Meta-Daten aus DB laden wenn POST fehlt
**1.4.0** – Font-Logik überarbeitet
- `$body_is_custom` Erkennung korrigiert (`custom` als Sonderfall)
- Custom-Font-Name wird korrekt aus CSS-Wert extrahiert
**1.4.1** – `ADMIN_URL` Fix
- Alle Form-Actions auf `ADMIN_URL` umgestellt (analog anderen WBCE-Modulen)
**1.4.2** – `ADMIN_URL` konsequent durchgesetzt
- Alle drei Formulare (Haupt, CSS-Editor, Logo-Upload) nutzen `ADMIN_URL`
**1.4.3** – Reservierte WBCE-Aktionsnamen umbenannt
- `save` → `tb_save`, `edit` → `tb_edit` usw.
- WBCE erkennt `action=save` als reserviertes Wort und bricht ab
**1.4.4** – AJAX-Speichern (echter Fix)
- Wurzel des Problems: WBCE macht bei **jedem POST** auf `tool.php` einen 302-Redirect
- Speichern läuft jetzt per `fetch()` direkt an neue `ajax.php`
- Kein Seitenreload mehr, Tab bleibt aktiv
- Erfolgsmeldung erscheint direkt im Editor
Last edited by rudi222 (26.05.2026 09:33:08)
Online
Habs mal getestet. Was mir aufgefallen ist in unsortierter Reihenfolge (sofern du es nicht eh schon auf dem Plan hast):
- Logo Upload geht nicht.
- bei der Versionsnummer solltest nur numerische Eingaben akzeptieren und dringend alles andere entfernen. (SQL Injection möglich?)
- Man sucht lange wo man das Template installieren kann. Die Buttons generieren & Installieren" bzw "CSS bearbeiten" nicht komplett ausblenden, sondern ausblenden bis die Vorgaben erfüllt sind und dann aktivieren. Dann sieht man es von Anfang an. Habe erstmal doof aus der Wäsche geschaut bis ich das kapiert hatte.
Den Fehler mit dem eingeschleusten "lang=de" konnte ich bei mir nicht nachvollziehen. gestestet mit der 1.3.4
Wie wird der denn ausgelöst?
Last edited by beach (26.05.2026 11:46:17)
Online
Ganz kurzer Test:
- Auswahl Preset => leere Seite, reproduzerbar
- Generieren&Installieren-Button erscheinen jetzt erst beim Neuladen der TEmplateeinstellungen, nicht wie vorher sofort nach Hinterlegen der Grundeinstellungen -
- Logo-Upload funktioniert nur (logischerweise), wenn oben Logo-Typ "Bild" ausgewählt ist, sollte aber daher auch nur dann angezeigt werden
- Eingene Schrifteinbindung via Google Fonts funktioniert jetzt ![]()
Nicht ärgern. Nur wundern.
Offline
**1.4.5** - Preset-Button gefixt
Preset-Buttons: Jetzt per AJAX – kein Form-Submit mehr, kein 302-Redirect. Nach erfolgreichem Laden wird die Seite nach 1 Sekunde neu geladen damit alle Felder aktualisiert werden.
Font-Änderungen: Validierung im Save – wenn „Google Font – freie Eingabe" gewählt aber kein Name eingetragen, erscheint eine Fehlermeldung statt leerem Font.
**1.4.6** - Darstellungsbug Typografie
Hint-Text – steht jetzt unter dem Eingabefeld, nicht mehr rechts daneben. Kein Überlauf mehr.
Meldungen unter den Buttons – erscheinen jetzt direkt nach der Aktionsleiste (Speichern/Generieren). Kein Verschieben des Inhalts mehr. Nach 5 Sekunden automatisch ausgeblendet.
**1.4.7** - Darstellungsbug Typografie
**1.4.8** - Darstellungsbug Typografie
**1.4.9** - editor.css eingebaut
editor.css wird beim Generieren automatisch erstellt
Online
Schon sehr gut, aber wie üblich ist der Teufel ein Eichhörnchen und steckt im Detail:
- Reiter "Allgemein":
-- Wenn man ein neues Template anlegt, muss man erst auf "zurück" klicken, und wieder auf das Template gehen, um die Buttons "Generieren und Installieren" und "CSS bearbeiten" angezeigt zu bekommen
-- Eingabevalidierung auf der Seite "Allgemein": Fragezeichen in Beschreibung -> SQL-Fehler
- CSS bearbeiten:
-- Änderungen werden nicht gespeichert
-- "Durchsuchen"-Schaltfläche - Funktion?
-- eingebauten Codemirror verwenden statt eigener Implementierung
- Frontend:
-- Navigationsdarstellung "Overlay": undefinierter / undefinerbarer Zustand für Nav.-Einträge auf Ebene 1+n
Nicht ärgern. Nur wundern.
Offline
- Reiter "Allgemein":
-- Wenn man ein neues Template anlegt, muss man erst auf "zurück" klicken, und wieder auf das Template gehen, um die Buttons "Generieren und Installieren" und "CSS bearbeiten" angezeigt zu bekommen
War mir schon aufgefallen und ist behoben.
-- Eingabevalidierung auf der Seite "Allgemein": Fragezeichen in Beschreibung -> SQL-Fehler
Muss ich mir noch ansehen
- CSS bearbeiten:
-- Änderungen werden nicht gespeichert
-- "Durchsuchen"-Schaltfläche - Funktion?
-- eingebauten Codemirror verwenden statt eigener Implementierung
Änderung des CSS-Editor steht auch schon länger auf der ToDo
- Frontend:
-- Navigationsdarstellung "Overlay": undefinierter / undefinerbarer Zustand für Nav.-Einträge auf Ebene 1+n
Das kommt "nur" durch nicht konfigurierte Overlay-Farben. Da muss man mal schauen, ob man eine sinnvolle Vorbelgeung finden kann.
Online
florian wrote:- Frontend:
-- Navigationsdarstellung "Overlay": undefinierter / undefinerbarer Zustand für Nav.-Einträge auf Ebene 1+nDas kommt "nur" durch nicht konfigurierte Overlay-Farben. Da muss man mal schauen, ob man eine sinnvolle Vorbelgeung finden kann.
Ok, das war ein "Overlay"-Missverständnis.
In dem Nav-Preset "Overlay" ist ein Bug. Da wird die zweite Menü-Ebene mit transparentem Hintergrund ausgegeben.
Online
Hier nochmal ein Update:
**1.5.0** – Tab-Umstrukturierung (6 Tabs)
- 10 Panels auf 6 zusammengefasst
- Neue Tab-Namen: Allgemein, Globale Einstellungen, Navigation, Seiten-Kopf, Design-Elemente, Seiten-Abschluss
- Mehrere Panels pro Tab per JavaScript verbunden
**1.5.1** – Neuanlage-Fix
- Nach erstem Speichern Seitenreload → alle Buttons erscheinen sofort
**1.5.2** – HTML-Struktur bereinigt
- 10 separate Panel-Divs → 6 saubere Panel-Divs
- Alle `<details>` korrekt geschlossen
**1.5.3** – Panel-Verbindung per JavaScript
- Innere Grenzen zwischen Panels eines Tabs entfernt
- Äußere Border bleibt erhalten
**1.5.4** – Diverse Fixes
- Abschlusszeile wieder sichtbar
- Seiten-Kopf / Header nicht mehr klappbar
- CSS-Buttons: ein Button pro Tab oben rechts
**1.5.5** – Tab-Initialisierung
- `tbActivateTab()` wird immer beim Laden aufgerufen
- Fallback wenn kein localStorage-Wert vorhanden
**1.5.6** – HTML-Struktur final bereinigt
- Python-Script fasst alle Panels sauber zusammen
- Fehlende `</details>` ergänzt
**1.5.7** – Fragezeichen-Fix
- `tb_query`: Positionen von hinten nach vorne ersetzen
- Fragezeichen in Texteingaben verursachen keinen SQL-Fehler mehr
- Fix in `tool.php`, `ajax.php`, `Generator.php`, `install.php`
**1.5.8** – Generator SQL-Fix
- `tb_query` im Generator ebenfalls korrigiert
- Felder `description`/`version` wurden nicht mehr vertauscht
**1.5.9** – Tab-Abschnitte verschoben
- Seitenlayout zwischen Preset laden und Farbschema
- Header-Layout nach Seiten-Kopf oben
- Nav-Style nach Navigation zwischen Navigation und Menü-Farben
- Duplikat-Code entfernt (4500 → 2571 Zeilen)
**1.5.9.1** – Versionskorrektur
**1.6.0** – Innenabstand
- Aus Seitenlayout herausgelöst, eigene Ebene
**1.6.1** – Logo-Upload
- Upload-Bereich nur sichtbar wenn Logo-Typ = „Bild"
**1.6.2** – Navigation
- „Menü-Farben" → „Farben 1. Ebene"
- „Dropdown-Farben" → „Farben ab 2. Ebene"
- Overlay Nav-Style: automatisch dunkle Dropdown-Defaults (`#333`/`#ddd`)
**1.6.2.1** – Versionskorrektur
**1.6.3** – Dropdown Viewport-Fix (Versuch 1)
- JavaScript prüft ob Dropdown rechts rausläuft
- Classic und Underline
**1.6.3.1–1.6.3.7** – Dropdown Viewport-Fix Iterationen
- dropotron integriert und wieder verworfen
- Eigenes JavaScript ohne externe Abhängigkeiten
- `visibility:hidden` vor `getBoundingClientRect()` damit Messung korrekt funktioniert
- 2. Ebene: öffnet nach links wenn kein Platz rechts
- 3. Ebene: öffnet links vom Elternelement wenn kein Platz rechts
**1.6.4** – Stabile Version
- Dropdown-Positionierung funktioniert zuverlässig für Classic und Underline
- Kein dropotron, kein jQuery – reines vanilla JavaScript
Online
Das geht ja Schlag auf Schlag hier.
Ist viel aufgeräumter und intuitiver bedienbar.
Sehr schön geworden!
Nicht ärgern. Nur wundern.
Offline