WBCE CMS – Way Better Content Editing.
You are not logged in.
Da ich diese Infos bis jetzt nirgends an einer Stelle gefunden habe, möchte ich das ganze einfach mal hier sammeln. Wenn es einen bessere passenden Bereich gibt, bitte entsprechend verschieben.
Bei der Entwicklung meines Modul bin ich eigentlich immer wieder auch auf der Suche gewesen nach Funktionen und Umgebungsvariablen die WBCE bereitstellt und bei der Entwicklung genutzt werden sollen/können/müssen.
Ich habe das mal von Deepseek zusammenfassen lassen. Entstanden ist diese Liste durch Webrecherche in der Onlinedoku, aber auch durch durchsuchen des GitHub repository. Erhebt allerdings keinen Anspruch auf Vollständigkeit.
Ich befürchte das die KI hier viel Phantasie spielen lassen hat. Zeigt wie kritisch man KI Generierte Sachen hinterfragen sollte. Weiter unten kommt ein neuer Versuch.
Ich hoffe aber, es hilft auch andern weiter.
Edit 10.04.2026:
Aktualisierte Version wegen einfacherem auffinden hier angehängt.
Seitenbezogene Funktionen
page_link($link) - Erzeugt einen vollständigen Link (inkl. Domain) zu einer Seite oder externen URL.
page_url($page_id) - Gibt die URL einer Seite basierend auf der page_id zurück (ohne Domain).
get_page_children($parent_id, $show_hidden = false) - Holt alle Unterseiten einer Elternseite (optional inkl. versteckter Seiten).
get_page_details($page_id) - Liefert ein Array mit allen Metadaten einer Seite (Titel, Beschreibung, Keywords etc.).
pages_parent_list($parent_id = 0, $indent = '') - Generiert eine hierarchische Liste aller Seiten (z. B. für Dropdown-Menüs).
get_page_trail($page_id) - Gibt den Pfad (Breadcrumb) zur aktuellen Seite als Array zurück.
Modul- und Blockbezogene Funktionen
get_module($module_name) - Holt Informationen zu einem Modul (z. B. Version, Autor).
register_frontend_modfiles($pattern) - Bindet CSS/JS-Dateien automatisch im Frontend ein (z. B. register_frontend_modfiles('module/my_module/css/*.css')).
block_to_php($block_id) - Konvertiert einen WBCE-Block in ausführbaren PHP-Code (für dynamische Inhalte).
get_block_content($block_id) - Holt den Inhalt eines Blocks (z. B. für Platzhalter in Templates).
Template- und Frontend-Funktionen
template_header() / template_footer() - Bindet die Standard-Template-Header/Footer ein (wichtig für Module, die eigene Frontend-Ausgaben haben).
get_media_file($file_path) - Generiert eine URL zu einer Mediendatei (z. B. Bilder, PDFs).
get_theme_setting($setting_name) - Liest eine Einstellung aus dem aktuellen Theme (z. B. Farben, Layout-Optionen).
show_error($message, $redirect_url = null) - Zeigt eine Fehlermeldung an und leitet optional um.
Datenbank- und Sicherheitsfunktionen
$database->get_one() / $database->get_array() - WBCE nutzt eine PDO-basierte Datenbankabstraktion (z. B. $database->get_one("SELECT title FROM {TP}pages WHERE page_id = 1")).
sec_anchor($string) - Erzeugt einen sichereren HTML-Anchor (z. B. für dynamische IDs).
wbce_escape_string($string) - Escaped Strings für sichere Datenbankabfragen.
Wichtige WBCE-Umgebungsvariablen
WB_URL: Basis-URL der Installation (z. B. https://example.com/wbce).
WB_PATH: Serverpfad zum WBCE-Root (z. B. /var/www/html/wbce).
ADMIN_URL: URL zum Admin-Bereich (z. B. https://example.com/wbce/admin).
ADMIN_PATH: Serverpfad zum Admin-Verzeichnis (z.B. /var/www/html/wbce/admin)
THEME_URL: URL zum aktuellen Theme-Ordner.
TEMPLATE_DIR: Pfad zum aktuellen Template-Ordner.
$page_id: ID der aktuellen Seite (global verfügbar).
$section_id: ID des aktuellen Abschnitts (falls im Seiten-Editor).
$admin: Objekt mit Admin-Bereichsdaten (nur im Backend).
Last edited by beach (10.04.2026 08:31:49)
Offline
webbird, thanks
Hier gibt es eine Seite für WBCE:
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
Offline
beach, thanks
Vielen Dank für deine Bemühungen und die Aufstellung.
Zum Teil wurde das von Entwicklern implementiert, die inzwischen nicht mehr aktiv sind, zum Teil auch von früheren CMS übernommen, deshalb gab es bislang keine Aufstellung, was alles unter der Haube ist.
Ich hoffe, die KI hat nichts dazuphantasiert. Von block_to_php, get_theme_setting, get_media_file habe ich vorher noch nicht gehört und kann mir gerade auch gar keinen praktischen Nutzen dafür vorstellen. Wobei ich allerdings auch kein Entwickler bin.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Naja, Nutzen hätten die schon, die Namensgebung wäre hier und da noch verbesserungswürdig.
Beispiel: get_media_file()
-> besserer Name z.B. get_media_file_url()
Klar, man kann die URL auch mittels der Konstanten zusammenkleben, aber eine Funktion ist für solche Dinge geeigneter. Will man z.B. mal aus WB_URL -> WBCE_URL machen und endgültig alte Zöpfe abschneiden, müßten entweder hunderte Stellen korrigiert werden - oder eben nur diese eine Funktion.
Die Funktion wird bei mir allerdings im Core nirgends gefunden, wäre also interessant, wo die KI sie entdeckt hat. Gleiches gilt für get_theme_setting().
block_to_php() ist gefährlich, dafür gibt es das Code(2) Modul.
Last edited by webbird (10.07.2025 14:32:21)
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
florian, thanks
Die Seite, die Slugger hier gepostet hat, war eigentlich das was ich gesucht, aber leider nicht gefunden habe.
HIer die Angaben von Deepseek zur Suche
Nach einer Recherche in der WBCE-Dokumentation, dem GitHub-Repository und einer Analyse des Codes hier eine Übersicht der wichtigsten Funktionen und Umgebungsvariablen, die für die Modulentwicklung in WBCE relevant sind:
[...]Hinweise zur Nutzung
Die Dokumentation findet sich auf WBCE.github.io.Im GitHub-Repository (WBCE/WBCE_CMS) sind viele Funktionen in /framework/ und /include/ definiert.
Für Module empfiehlt sich die Nutzung der WBCE Module API (z. B. register_module() für Installation/Deinstallation).[...]
Last edited by beach (10.07.2025 14:54:53)
Offline
Bin mal zufällig wieder über das Thema gestolpert. Und da ich aktuell ein wenig Zeit über hatte, habe ich das ganze nochmals gegenchecken lassen. Leider hatte Deepseek zu viel Phantasie. Daher ist die Liste oben durchgestrichen.
Erweiternd zu der Seite die slugger genannt hat, habe ich die Ausgabe von alle verfügbaren Konstanten, Variablen und Funktionen mal von Claude analysieren lassen. Dabei ist die Datei im Anhang herausgekommen. Ich hoffe das Claude alle persönlichen Informationen anonymisiert hat....
Testsystem war ein XAMPP unter WIN11 mit WBCE 1.6.3 Also nicht die aktuellste Version. bei Gelegenheit werde ich die 1.6.5 nochmal analysieren ob sich Änderungen ergeben haben.
Ich hoffe das diese Auflistung nun besser ist und vielleicht der eine oder andere gebrauchen kann. z.B. als Vorgabe beim Vibe Coding
Edit: aktuelle Version im ersten Thema
Last edited by beach (10.04.2026 08:33:06)
Offline
Slugger, florian, mrbaseman
Sieht soweit ganz gut aus, was noch größtenteils fehlt, sind die Sprachdateien. Die gibt es für den Core - teilweise sogar für recht viele Sprachen - und dann jeweils für die Module.
Was es in den Language-Files vom Core bereits gibt, verwendet man sinnvollerweise in den Modulen direkt weiter. Wenn sich jemand die Mühe macht, eine neue Sprachdatei für den Core bereitzustellen, dann hat man alle diese Termini auch gleich in allen Modulen, die sie verwenden.
Bei allem, was es nicht übersetzt gibt, wird i.d.R. ein Fallback auf Englisch verwendet, weil das die meisten Module zumindest mitbringen, oder ggf. die im Core eingestellte Default-Sprache.
Offline
SEC_ANCHOR | wbce_ | Präfix für Anker-IDs zur CSRF-Absicherung
Ich denke die haben mit CSRF Absicherung nichts zu tun. Die werden verwendet als Links im Backend, damit man aus /pages/sections.php zu /pages/modify.php zu der richtigen Section kommt. Und im Frontend werden die auch gesetzt. Aber m.W.n. haben die mit idkeys/ftan nichts zu tun.
Christian
Edit: So eine Liste ist sehr sinnvoll.
P.S. Bitte die $database queries (unter Punkt 12) so nicht veröffentlichen. Die Methoden ändern sich mit dem kommenden WBCE Release.
Last edited by stefanek (09.04.2026 23:02:20)
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
beach
Ja, SEC_ANCHOR hat nichts mit "Security" zu tun, sondern ist die Einsprungmarke für einzelne Sections. Eine Seite kann aus mehrere Sections bestehen, und um eine bestimmte davon anspringen zu können, kann man die Bezeichnung dieses Ankers mit einem 'Doppelkreuz' an die URL anhängen (um nicht falsche Assoziazionen zu wecken schreibe ich bewusst nicht 'Hashtag'). Die CSRF Absicherung erfolgt in der Tat über FTAN und idKeys, sofern vom jeweiligen Modul unterstützt.
Offline
stefanek
Danke für die Hinweise. Habe das mal so übernommen und auch die Sprachdateien vom Core hinzugefügt.
Bei den Datenbankmethoden habe ich einen klaren Hinweis zugefügt das diese nur bis zur aktuell gültigen Version (1.6.5) gültig sind und diese in Überarbeitung sind.
MD Datei im Ersten Thema angehängt.
Gerne weitere Ergänzungen oder Korrekturen.
1. SEC_ANCHOR (Z. 104): Beschreibung korrigiert – macht jetzt klar, dass es Section Anchors für URL-Navigation sind, kein CSRF-Bezug.
2. $database-Abschnitt: Warnhinweis eingefügt – bezieht sich auf ≤ 1.6.5, Überarbeitung der DB-Methoden in Arbeit, wird ergänzt wenn verfügbar.
3. Neuer Unterabschnitt „Sprachdateien" am Anfang von Abschnitt 13: Erklärt $TEXT, $MESSAGE, $HEADING, $MENU, zeigt wie eigene und Kern-Sprachdateien genutzt werden, inklusive getpluginlangarray().
Last edited by beach (10.04.2026 08:39:34)
Offline
stefanek
Warnhinweis braucht nicht.
Lieber komplett weglassen.
Alte Schreibweise wird weiterhin funktionieren, ist nur dann nicht mehr best practice.
Du kannst das $database Objekt weiterhin nennen. Es bleibt.
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline