'Community Forum', 'hero_subtitle' => 'Diskutiere, teile Ideen und bleib immer informiert.', // Topbar 'topbar_brand' => 'Community', // Statistik-Labels 'stat_threads' => 'Threads', 'stat_posts' => 'Beiträge', 'stat_members' => 'Mitglieder', // Abschnitt-Überschriften 'section_cats' => 'Kategorien', 'section_recent' => 'Neue Threads', // Buttons 'btn_new_thread' => 'Neuer Thread', 'btn_login' => 'Einloggen', 'btn_register' => 'Registrieren', 'btn_logout' => 'Logout', // Sidebar 'sidebar_profile' => 'Mein Profil', 'sidebar_login' => 'Login / Registrieren', // Sicherheit 'auto_logout_minutes' => '30', // Wartungsmodus 'maintenance_mode' => '0', 'maintenance_title' => 'Wartungsarbeiten', 'maintenance_message' => 'Das Forum wird gerade gewartet. Bitte versuche es später erneut.', 'registration_enabled' => '1', 'registration_mode' => 'open', 'post_edit_limit' => '30', 'profile_public_default' => '1', 'spam_min_seconds' => '30', // open | invite | disabled 'flood_interval' => '30', // Flood Control: Sekunden zwischen Posts 'invite_message' => 'Registrierung ist aktuell nur auf Einladung möglich.', // Forum-Regeln / Nutzungsbedingungen 'rules_enabled' => '1', 'rules_accept_required' => '1', 'rules_title' => 'Forum-Regeln & Nutzungsbedingungen', 'rules_content' => "**1. Respektvoller Umgang**\nBehandle alle Mitglieder freundlich und respektvoll. Beleidigungen, Mobbing und Diskriminierung sind nicht toleriert.\n\n**2. Keine Spam-Inhalte**\nWerbung, Spam und irrelevante Links sind verboten.\n\n**3. Keine illegalen Inhalte**\nJegliche Inhalte, die gegen geltendes Recht verstoßen, sind streng verboten.\n\n**4. Themenrelevanz**\nBeiträge sollten zur jeweiligen Kategorie passen.\n\n**5. Urheberrecht**\nVeröffentliche keine Inhalte, an denen du keine Rechte besitzt.\n\n**6. Datenschutz**\nTeile keine persönlichen Daten anderer Personen ohne deren Zustimmung.\n\n**7. Moderations-Entscheidungen**\nEntscheidungen der Moderatoren sind zu respektieren. Bei Fragen wende dich direkt ans Team.\n\nVerstöße können zur Verwarnung oder dauerhaften Sperrung führen.", ]; $saved = get_option( 'wbf_settings', [] ); // Fehlende Keys mit Defaults auffüllen, leere Strings ignorieren return array_merge( $defaults, array_filter( (array) $saved, 'strlen' ) ); } } // ── Admin-Seite ─────────────────────────────────────────────────────────────── if ( ! function_exists('wbf_admin_settings') ) { function wbf_admin_settings() { // Speichern if ( isset( $_POST['wbf_save_settings'] ) && check_admin_referer( 'wbf_settings_nonce' ) ) { $fields = [ 'hero_title', 'hero_subtitle', 'topbar_brand', 'stat_threads', 'stat_posts', 'stat_members', 'section_cats', 'section_recent', 'btn_new_thread', 'btn_login', 'btn_register', 'btn_logout', 'sidebar_profile', 'sidebar_login', 'auto_logout_minutes', 'post_edit_limit', 'spam_min_seconds', 'flood_interval', 'profile_public_default', 'registration_enabled', 'registration_mode', 'invite_message', 'maintenance_mode', 'maintenance_title', 'maintenance_message', 'post_edit_limit', 'profile_public_default', 'spam_min_seconds', 'rules_enabled', 'rules_accept_required', 'rules_title', ]; $settings = []; foreach ( $fields as $key ) { if ( in_array( $key, ['maintenance_message', 'rules_content'] ) ) { $settings[$key] = sanitize_textarea_field($_POST[$key] ?? ''); } else { $settings[ $key ] = sanitize_text_field( $_POST[ $key ] ?? '' ); } } // rules_content separat (nicht in $fields, da textarea mit eigener Behandlung) $settings['rules_content'] = sanitize_textarea_field( $_POST['rules_content'] ?? '' ); update_option( 'wbf_settings', $settings ); echo '
✅ Einstellungen gespeichert!
{$desc}
" : '' ) . "Alle sichtbaren Texte des Forums — kein Code nötig.
| Schlüssel | Aktueller Wert |
|---|---|
|