# 💬 WP Business Forum **Ein vollstĂ€ndiges, eigenstĂ€ndiges Forum-Plugin fĂŒr WordPress** — mit eigenem Login-System, dynamischen Rollen, Privatnachrichten, BBCode, Level-System, Moderations-Tools und vielem mehr. > **Version 2.0.0** · Getestet mit WordPress 6.x · PHP 8.0+ · MySQL 5.7+ --- ## 📋 Inhaltsverzeichnis - [Features](#-features) - [Installation](#-installation) - [Erster Start — Setup-Wizard](#-erster-start--setup-wizard) - [Shortcode](#-shortcode) - [Admin-Bereich](#-admin-bereich) - [Rollen & Berechtigungen](#-rollen--berechtigungen) - [Level-System](#-level-system) - [BBCode-Referenz](#-bbcode-referenz) - [Dateistruktur](#-dateistruktur) - [Datenbank-Tabellen](#-datenbank-tabellen) - [Export & Import](#-export--import) - [FAQ](#-faq) --- ## ✹ Features ### 🔐 Eigenes Login-System - Komplett unabhĂ€ngig vom WordPress-Backend — Forum-Nutzer brauchen keinen WP-Account - Registrierung direkt im Forum-Frontend - **Remember-Me** Cookie (30 Tage) - **Passwort vergessen** mit sicherem Reset-Link per E-Mail (1 Stunde gĂŒltig) - **Auto-Logout** bei InaktivitĂ€t (einstellbar: 5 Min. bis 8 Std.) - Groß-/Kleinschreibung beim Login egal ### 📁 Kategorien & Threads - **Eltern-Kind-Hierarchie** — unbegrenzte Verschachtelung - Threads erstellen, bearbeiten (Titel + Inhalt), löschen - **Pinnen** und **Schließen** von Threads (Moderatoren+) - **Thread-Tags** fĂŒr bessere Auffindbarkeit - **Views-Counter** pro Thread - **Breadcrumb-Navigation** durch die gesamte Hierarchie - **Kategorie-ZugangsbeschrĂ€nkung** per Mindest-Rolle ### 💬 Posts & Interaktion - Antworten mit **Live-Vorschau** (kein Seitenreload) - **Like-System** fĂŒr Threads und Posts - **Emoji-Reaktionen** (👍 ❀ 😂 😼 😱 đŸ”„) - **Zitieren** mit automatischem `[quote=Name]`-BBCode - **@ErwĂ€hnungen** — klickbare Profil-Links - **BeitrĂ€ge melden** mit BegrĂŒndung - Posts und Thread-Titel nachtrĂ€glich bearbeiten ### đŸ›Ąïž Rollen-System 6 Standard-Rollen + beliebig viele eigene Rollen: | Rolle | Level | Besonderheit | |---|---|---| | 👑 Superadmin | 100 | Automatisch an WP-Administrator gebunden — unverĂ€nderlich | | 🔮 Admin | 80 | VollstĂ€ndige Verwaltung | | 🟡 Moderator | 50 | Moderation von Threads & Posts | | đŸ”” VIP | 20 | Eigenes Badge | | âšȘ Member | 10 | Standard fĂŒr neue Nutzer | | ⛔ Gesperrt | -1 | Kein Forum-Zugang | Jede Rolle ist vollstĂ€ndig anpassbar: Label, Level, Farbe, Icon (FontAwesome), Permissions. ### ⭐ Level-System Automatisches Level basierend auf Beitragsanzahl (kann deaktiviert werden): | Level | Ab BeitrĂ€gen | Icon | |---|---|---| | đŸŒ± Neuling | 0 | `fas fa-seedling` | | đŸȘ¶ Schreiberling | 10 | `fas fa-feather` | | đŸ”„ Erfahrener | 50 | `fas fa-fire` | | đŸ›Ąïž Veteran | 150 | `fas fa-shield-halved` | | 👑 Legende | 500 | `fas fa-crown` | Levels sind im Admin vollstĂ€ndig anpassbar — Bezeichnung, Schwellenwert, Icon, Farbe. ### đŸ‘€ Profile - Eigenes Avatar-Bild (Upload oder Gravatar) - Anzeigename, Bio und **Signatur** (max. 300 Zeichen, erscheint unter jedem Beitrag) - Profil-Seite mit BeitragsĂŒbersicht und Fortschrittsbalken - **Mitgliederliste** (nur fĂŒr eingeloggte Nutzer) mit Suche und Sortierung ### ✉ Privatnachrichten - Direktnachrichten zwischen Nutzern - **Posteingang** mit Konversations-Übersicht - Ungelesene Nachrichten werden im Topbar angezeigt - **Ältere Nachrichten laden** (Pagination) - Nachrichten löschen ### 🔔 Benachrichtigungen - In-App-Glocke in der Topbar mit Badge - E-Mail-Benachrichtigungen bei: - Antwort auf eigenen Thread - @ErwĂ€hnung - Neue Privatnachricht - Benachrichtigungen als gelesen markieren ### 🔍 Suche - Volltextsuche in Threads und Posts - Live-VorschlĂ€ge bei der Eingabe - Ergebnisse mit Kategorie und Datum ### 🔧 Moderations-Tools - Thread pinnen / entpinnen - Thread schließen / öffnen - Thread in andere Kategorie verschieben - Posts und Threads löschen - Meldungs-System mit Admin-Dashboard - Nutzer sperren mit Sperrgrund (wird beim Login angezeigt) ### ⚙ Admin-Backend - **Übersicht** mit Echtzeit-Statistiken - **Kategorien** verwalten (Hierarchie, Icons, Min-Rolle) - **Rollen** erstellen, bearbeiten, löschen - **Level** konfigurieren - **Mitglieder** verwalten — Rolle, E-Mail, Passwort, Anzeigename Ă€ndern - **Meldungen** bearbeiten (offen / erledigt / verworfen) - **Einstellungen** — alle Forum-Texte anpassbar, kein Code nötig - **Export / Import** — vollstĂ€ndige Datensicherung --- ## 🚀 Installation ### Methode 1 — ZIP hochladen (empfohlen) 1. Lade das Repository als `.zip` herunter 2. WordPress-Admin → **Plugins** → **Installieren** → **Plugin hochladen** 3. ZIP auswĂ€hlen und installieren 4. Plugin **aktivieren** ### Methode 2 — FTP / Dateimanager 1. Lade den Ordner `wp-business-forum` auf deinen Server hoch 2. Zielverzeichnis: `/wp-content/plugins/wp-business-forum/` 3. WordPress-Admin → Plugins → **WP Business Forum** aktivieren ### Voraussetzungen - WordPress **6.0+** - PHP **8.0+** - MySQL **5.7+** oder MariaDB **10.3+** - `wp_mail()` fĂŒr E-Mail-Benachrichtigungen (Standard-WP-Mailer) --- ## 🧙 Erster Start — Setup-Wizard Nach der Aktivierung wirst du automatisch zum **Setup-Wizard** weitergeleitet: **Schritt 1 — Superadmin-Konto erstellen** - Dein Name und deine WP-Admin-E-Mail sind bereits vorausgefĂŒllt - Gib ein Passwort fĂŒr dein Forum-Konto ein - Das Konto wird automatisch dauerhaft mit dem Superadmin-Status verknĂŒpft **Schritt 2 — Forum-Seite erstellen** - Optional: Eine WordPress-Seite mit dem Shortcode wird automatisch angelegt - Du kannst auch eine eigene Seite manuell erstellen **Schritt 3 — Fertig!** - Direktlink zur Forum-Seite - Link zum Admin-Dashboard > ⚠ **Wichtig:** Verwende beim Superadmin-Konto dieselbe E-Mail wie dein WordPress-Administratorkonto. Das Plugin verknĂŒpft sie automatisch und stellt bei jedem Login sicher, dass dein Account immer Superadmin-Rechte hat. --- ## 📌 Shortcode FĂŒge diesen Shortcode auf einer beliebigen WordPress-Seite ein: ``` [business_forum] ``` Das Plugin erkennt automatisch den aktuellen URL-Parameter und zeigt die passende Ansicht: | URL-Parameter | Ansicht | |---|---| | *(kein Parameter)* | Forum-Startseite | | `?forum_cat=slug` | Kategorie-Ansicht | | `?forum_thread=123` | Thread-Ansicht | | `?forum_profile=123` | Profil-Seite | | `?forum_members=1` | Mitgliederliste | | `?forum_search=Begriff` | Suchergebnisse | | `?forum_tag=tagname` | Tag-Übersicht | | `?forum_dm=1` | Privatnachrichten | | `?wbf_do_logout=1` | Logout (serverseitig) | | `?wbf_reset_token=
` | Passwort zurĂŒcksetzen | --- ## đŸ› ïž Admin-Bereich Erreichbar unter **WP-Admin → Business Forum** ### Übersicht - Echtzeit-Statistiken: Threads, BeitrĂ€ge, Mitglieder, Tags, Meldungen - Schnellzugriff auf alle Unterbereiche - Rollensystem-Übersicht ### Kategorien - Kategorien erstellen und bearbeiten - **Eltern-Kind-Hierarchie** per Dropdown - Icon (FontAwesome-Klasse), Beschreibung, Sortierreihenfolge - **Mindest-Rolle** zum Posten (z.B. nur Moderatoren können in "AnkĂŒndigungen" posten) ### Rollen - Eigene Rollen mit individuellem Label, Level (1–99), Farbe, Icon und Permissions erstellen - Rollen löschen (Nutzer werden automatisch auf "Member" gesetzt) - Superadmin ist gesperrt und kann nicht verĂ€ndert werden **VerfĂŒgbare Permissions:** | Permission | Beschreibung | |---|---| | `post` | BeitrĂ€ge schreiben | | `create_thread` | Threads erstellen | | `like` | BeitrĂ€ge liken | | `pin_thread` | Threads pinnen | | `close_thread` | Threads schließen | | `delete_post` | Posts löschen | | `delete_thread` | Threads löschen | | `manage_users` | Nutzer verwalten | | `manage_cats` | Kategorien verwalten | | `post_announcement` | In eingeschrĂ€nkte Kategorien posten | ### Level - Level-Bezeichnung, Mindest-Beitragsanzahl, Icon und Farbe anpassen - Neues Level hinzufĂŒgen oder bestehende löschen - Level-System global aktivieren/deaktivieren - ZurĂŒcksetzen auf Standard-Konfiguration ### Mitglieder - Alle Forum-Nutzer mit Rolle, Beitragsanzahl und Registrierungsdatum - **Rolle Ă€ndern** direkt in der Tabelle (inkl. Sperrgrund bei "Gesperrt") - **Profil bearbeiten**: Anzeigename, E-Mail, Passwort - Superadmin-Konten sind schreibgeschĂŒtzt ### Meldungen - Gemeldete BeitrĂ€ge mit BegrĂŒndung und Melder - Status: Offen · Erledigt · Verworfen - Direktlink zum gemeldeten Beitrag ### Einstellungen Alle sichtbaren Texte des Forums ohne Code Ă€ndern: - Hero-Bereich (Titel, Untertitel) - Topbar (Forum-Name, Button-Beschriftungen) - Statistik-Labels - AbschnittsĂŒberschriften - Sidebar-Titel - **Auto-Logout** nach InaktivitĂ€t (0 = deaktiviert, bis 8 Stunden) ### Export / Import VollstĂ€ndige Datensicherung aller Forum-Daten als `.json`-Datei: | Bereich | Inhalt | |---|---| | ⚙ Einstellungen | Forum-Texte, Labels, Auto-Logout | | đŸ›Ąïž Rollen | Alle Rollen mit Permissions & Design | | ⭐ Level | Level-Konfiguration & Status | | 📂 Kategorien | Kategoriestruktur inkl. Hierarchie | | đŸ‘„ Benutzer | Accounts inkl. Passwort-Hashes | | 💬 Threads & Posts | Alle Inhalte inkl. Tags | | ❀ Likes & Reaktionen | Likes, Reaktionen, Benachrichtigungen | | ✉ Privatnachrichten | Alle DM-Konversationen | | đŸš© Meldungen | Gemeldete BeitrĂ€ge inkl. Status | --- ## 🎹 Rollen & Berechtigungen ### Superadmin — Sonderfall Der Superadmin ist **immer** an den WordPress-Administrator gebunden: - Wird bei jedem Seitenaufruf automatisch synchronisiert - Kann nicht manuell vergeben oder entzogen werden - Hat Zugriff auf alle Funktionen ohne EinschrĂ€nkung - Kann im Admin-Panel nicht gelöscht oder bearbeitet werden ### Rollen-Hierarchie Höherer `level`-Wert = mehr Rechte. Wenn eine Kategorie eine Mindest-Rolle hat, mĂŒssen Nutzer mindestens dieses Level haben um dort zu posten. ### Eigene Rollen erstellen 1. WP-Admin → Business Forum → **Rollen** → **+ Neue Rolle** 2. Rollen-SchlĂŒssel vergeben (z.B. `trusted_member`) — kann nicht geĂ€ndert werden 3. Anzeigename, Level (zwischen `member` = 10 und `admin` = 80), Farbe, Icon, Permissions 4. Speichern --- ## 📊 Level-System Das Level-System ist optional und kann jederzeit ein- oder ausgeschaltet werden. Es basiert ausschließlich auf der Anzahl der BeitrĂ€ge eines Nutzers. ### Level-Badge Wird auf der Profil-Seite, in Posts und auf der Mitgliederliste angezeigt. ### Fortschrittsbalken Auf der eigenen Profil-Seite wird angezeigt: - Aktuelles Level mit Badge - Anzahl der benötigten BeitrĂ€ge bis zum nĂ€chsten Level - Fortschrittsbalken in der Levelfarbe ### Konfiguration WP-Admin → Business Forum → **Level** → Neue EintrĂ€ge hinzufĂŒgen oder bestehende bearbeiten. --- ## đŸ·ïž BBCode-Referenz Nutzer können in Threads und Posts folgende Formatierungen verwenden: ### Text-Formatierung ``` [b]Fett[/b] [i]Kursiv[/i] [u]Unterstrichen[/u] [s]Durchgestrichen[/s] [h2]Überschrift 2[/h2] [h3]Überschrift 3[/h3] ``` ### Farbe & GrĂ¶ĂŸe ``` [color=red]Roter Text[/color] [color=#00b4d8]Hex-Farbe[/color] [size=small]Kleiner Text[/size] [size=large]Großer Text[/size] [size=xlarge]Sehr großer Text[/size] ``` Erlaubte Farbnamen: `red`, `blue`, `green`, `orange`, `yellow`, `purple`, `pink`, `cyan`, `white`, `gray`, `black`, `gold`, `silver`, `lime`, `teal`, `navy` ### Links & Medien ``` [url=https://beispiel.de]Link-Text[/url] [url]https://beispiel.de[/url] [img]https://beispiel.de/bild.jpg[/img] ``` ### Code ``` [code] function helloWorld() { echo "Hallo Welt!"; } [/code] Inline: [icode]$variable[/icode] ``` ### Zitat ``` [quote]Allgemeines Zitat[/quote] [quote=M_Viper]Zitat von M_Viper[/quote] ``` ### Spoiler ``` [spoiler]Versteckter Inhalt[/spoiler] [spoiler=Titel]Inhalt mit Titel[/spoiler] ``` ### Listen ``` [list] [*] Erstes Element [*] Zweites Element [/list] [list=1] [*] Nummeriert [*] Liste [/list] ``` ### Ausrichtung & Trennlinie ``` [center]Zentrierter Text[/center] [right]RechtsbĂŒndiger Text[/right] [hr] ``` ### @ErwĂ€hnungen ``` @Benutzername ``` Wird automatisch zu einem klickbaren Profil-Link und sendet eine Benachrichtigung. --- ## 📁 Dateistruktur ``` wp-business-forum/ ├── wp-business-forum.php # Plugin-Hauptdatei ├── includes/ │ ├── class-forum-db.php # Datenbankschicht (alle Abfragen) │ ├── class-forum-auth.php # Login, Register, Session, Remember-Me │ ├── class-forum-roles.php # Dynamisches Rollensystem │ ├── class-forum-levels.php # Level-System │ ├── class-forum-bbcode.php # BBCode → HTML Parser │ ├── class-forum-shortcodes.php # Frontend-Rendering (alle Ansichten) │ └── class-forum-ajax.php # AJAX-Handler (alle Aktionen) ├── admin/ │ ├── forum-admin.php # Admin-Panel (alle Unterseiten) │ ├── forum-settings.php # Einstellungsseite & wbf_get_settings() │ └── forum-setup.php # Einrichtungs-Wizard └── assets/ ├── css/ │ └── forum-style.css # Komplettes Dark-Theme (Minecraft Modern) └── js/ └── forum-script.js # Alle Frontend-Interaktionen (jQuery) ``` --- ## đŸ—„ïž Datenbank-Tabellen Alle Tabellen werden bei der Plugin-Aktivierung automatisch erstellt. Bestehende Tabellen werden beim Update automatisch um neue Spalten erweitert (via `ALTER TABLE`). | Tabelle | Inhalt | |---|---| | `{prefix}forum_users` | Forum-Accounts (unabhĂ€ngig von WP-Usern) | | `{prefix}forum_categories` | Kategorien mit Eltern-Kind-Hierarchie | | `{prefix}forum_threads` | Hauptthreads | | `{prefix}forum_posts` | Antworten auf Threads | | `{prefix}forum_likes` | Likes auf Threads und Posts | | `{prefix}forum_tags` | Tag-Bibliothek | | `{prefix}forum_thread_tags` | VerknĂŒpfung Thread ↔ Tags | | `{prefix}forum_messages` | Privatnachrichten | | `{prefix}forum_reactions` | Emoji-Reaktionen auf Posts | | `{prefix}forum_reports` | Gemeldete BeitrĂ€ge | | `{prefix}forum_notifications` | In-App-Benachrichtigungen | | `{prefix}forum_remember_tokens` | Remember-Me-Tokens | --- ## đŸ’Ÿ Export & Import ### Export 1. WP-Admin → Business Forum → **Export / Import** 2. GewĂŒnschte Bereiche anwĂ€hlen (alle standardmĂ€ĂŸig aktiviert) 3. **Als JSON exportieren** klicken 4. Die Datei wird sofort heruntergeladen (`wbf-backup-DATUM.json`) ### Import 1. WP-Admin → Business Forum → **Export / Import** 2. Backup-Datei auswĂ€hlen (`.json`) 3. Überschreiben-Optionen nach Bedarf aktivieren 4. **Importieren** klicken > ⚠ **Hinweis:** Der Import von Nutzern enthĂ€lt Passwort-Hashes und funktioniert fĂŒr Migrationen zwischen WordPress-Sites. Superadmin-Status wird beim Import nie ĂŒbertragen — nur der WP-Administrator erhĂ€lt automatisch Superadmin-Rechte. ### Überschreiben-Optionen | Option | Effekt | |---|---| | Kategorien ĂŒberschreiben | Löscht alle bestehenden Kategorien vor dem Import | | Benutzer aktualisieren | Aktualisiert vorhandene Accounts (gleicher Username) | | Threads & Posts ĂŒberschreiben | Löscht alle Threads, Posts, Likes und Reaktionen | | Privatnachrichten ĂŒberschreiben | Löscht alle DMs vor dem Import | | Meldungen ĂŒberschreiben | Löscht alle Meldungen vor dem Import | --- ## ❓ FAQ **Brauchen Forum-Nutzer einen WordPress-Account?** Nein. Das Forum hat ein komplett eigenstĂ€ndiges Login-System. Forum-Nutzer können sich direkt im Frontend registrieren ohne Zugang zum WordPress-Backend. **Wie werde ich Superadmin?** Registriere dich im Forum mit derselben E-Mail-Adresse wie dein WordPress-Administratorkonto. Das Plugin erkennt dies automatisch. Falls du bereits ein Forum-Konto mit einer anderen E-Mail hast, kannst du dieses entweder im Setup-Wizard hochstufen oder direkt in der Datenbank das `role`-Feld auf `superadmin` setzen. **Kann ich mehrere Superadmins haben?** Nein. Der Superadmin-Status ist fest an das WordPress-Administratorkonto gebunden. Du kannst jedoch mehrere Nutzer auf die Rolle `Admin` (Level 80) setzen — diese haben nahezu dieselben Rechte. **Funktioniert das Plugin mit Caching-Plugins?** Ja, grundsĂ€tzlich. Der Logout-Button nutzt einen direkten Server-Link (`?wbf_do_logout=1`) statt AJAX und ist daher Caching-sicher. Falls du Probleme mit veralteten Nonces hast, deaktiviere das Caching fĂŒr die Forum-Seite in deinem Caching-Plugin. **Wie passe ich das Design an?** Das Plugin enthĂ€lt ein vollstĂ€ndiges Dark-Theme (`forum-style.css`) passend zum "Minecraft Modern Theme"-Stil. FĂŒr eigene Anpassungen fĂŒge dein CSS in der WordPress-Customizer oder einer Custom-CSS-Datei hinzu und verwende die CSS-Custom-Properties des Plugins (z.B. `--c-primary`, `--c-surface`). **Welche E-Mail-Konfiguration wird benötigt?** Das Plugin nutzt `wp_mail()` — denselben Mechanismus wie WordPress selbst. Wenn dein WordPress bereits E-Mails senden kann (z.B. fĂŒr Passwort-ZurĂŒcksetzen), funktionieren auch die Forum-Benachrichtigungen. FĂŒr zuverlĂ€ssige E-Mail-Zustellung empfiehlt sich ein SMTP-Plugin wie WP Mail SMTP. **Wie lösche ich alle Forum-Daten?** Deaktiviere und lösche das Plugin. Die Datenbanktabellen werden dabei **nicht** automatisch gelöscht (WordPress-Standard). Um die Tabellen zu entfernen, fĂŒhre in phpMyAdmin oder WP-CLI folgende Abfragen aus: ```sql DROP TABLE IF EXISTS wp_forum_users, wp_forum_categories, wp_forum_threads, wp_forum_posts, wp_forum_likes, wp_forum_tags, wp_forum_thread_tags, wp_forum_messages, wp_forum_reactions, wp_forum_reports, wp_forum_notifications, wp_forum_remember_tokens; ``` --- *Entwickelt mit ❀ fĂŒr die WordPress-Community*