diff --git a/admin/forum-admin.php b/admin/forum-admin.php index d5f2701..0c2bf5a 100644 --- a/admin/forum-admin.php +++ b/admin/forum-admin.php @@ -30,6 +30,7 @@ add_action( 'admin_menu', function() { add_submenu_page( 'wbf-admin', 'Thread-Prรคfixe','Thread-Prรคfixe','manage_options', 'wbf-prefixes', 'wbf_admin_prefixes' ); add_submenu_page( 'wbf-admin', 'Wortfilter', 'Wortfilter', 'manage_options', 'wbf-wordfilter', 'wbf_admin_wordfilter' ); add_submenu_page( 'wbf-admin', 'Export / Import','Export / Import','manage_options', 'wbf-export', 'wbf_admin_export' ); + add_submenu_page( 'wbf-admin', '๐ฎ Discord', '๐ฎ Discord', 'manage_options', 'wbf-discord', 'wbf_admin_discord' ); add_submenu_page( 'wbf-admin', 'โ ๏ธ Deinstallieren', 'โ ๏ธ Deinstallieren', 'manage_options', 'wbf-uninstall', 'wbf_admin_uninstall' ); add_submenu_page( 'wbf-admin', '๐ Updates', '๐ Updates', 'manage_options', 'wbf-updates', 'wbf_admin_updates' ); }, 10 ); @@ -1346,14 +1347,46 @@ function wbf_admin_members() { } } - $members = WBF_DB::get_all_users( 200 ); + $members = WBF_DB::get_all_users( 200 ); + $s_discord = wbf_get_settings(); + $dc_sync_on = ( $s_discord['discord_role_sync'] ?? '0' ) === '1' && trim( $s_discord['discord_bot_token'] ?? '' ); + + // Discord-Meta aller User vorladen (1 Query statt N) + $dc_meta = []; + if ( $dc_sync_on ) { + global $wpdb; + $rows = $wpdb->get_results( + "SELECT user_id, + MAX(CASE WHEN meta_key='discord_user_id' THEN meta_value END) AS discord_uid, + MAX(CASE WHEN meta_key='discord_username' THEN meta_value END) AS discord_name + FROM {$wpdb->prefix}forum_user_meta + WHERE meta_key IN ('discord_user_id','discord_username') + GROUP BY user_id" + ); + foreach ( $rows as $r ) { + $dc_meta[ (int)$r->user_id ] = $r; + } + } ?>
Keine Zuordnungen konfiguriert.
+ Jetzt einrichten + +| Discord Rollen-ID | Forum-Rolle |
|---|---|
|
+ + |
Noch keine verknรผpften Nutzer.
+ +| Forum-Nutzer | Rolle | Discord-Name | Discord-ID |
|---|---|---|---|
| display_name); ?> + @username); ?> | +role); ?> | +discord_name ?: 'โ'); ?> | +discord_uid ?: 'โ'); ?> |
+
โ Einstellungen gespeichert!
| + + | +
+
+
+
+
+ โ
display_name ); ?>
+ <user_email ); ?>>
+
+
+
+ โ ๏ธ Kein WordPress-User mit dieser ID gefunden!
+
+
+
+ Nur dieser WordPress-User erhรคlt automatisch die Forum-Rolle Superadmin
+ und kann sie nicht verlieren. Alle anderen WordPress-Admins kรถnnen normale Forum-Rollen
+ haben und im Mitglieder-Bereich frei zugewiesen werden. |
+
|---|---|
| @@ -499,6 +567,170 @@ function wbf_admin_settings() { |
+ Bot-Token und Guild-ID findest du im Discord Developer Portal. + Der Bot muss Mitglied deines Servers sein und die Berechtigung Direct Messages lesen/senden sowie + Server-Mitglieder verwalten besitzen. +
+| + |
+
+ Niemals รถffentlich teilen! Wird verschlรผsselt in der Datenbank gespeichert. + |
+
|---|---|
| + |
+
+ Rechtsklick auf deinen Server โ ID kopieren (Entwicklermodus muss aktiv sein). + |
+
| + |
+
+ Fรผr zukรผnftige OAuth2-Unterstรผtzung. Aktuell optional. + |
+
| + | + + | +
| Rollen-Sync aktivieren | +
+
+ + Wenn aktiviert, wird bei jedem Login und stรผndlich per Cron die Discord-Rolle des Nutzers + geprรผft und die Forum-Rolle entsprechend der unten definierten Zuordnung aktualisiert. + + |
+
+ Trage die Discord-Rollen-ID und die gewรผnschte Forum-Rolle ein. + Mehrere Eintrรคge werden der Reihe nach geprรผft โ der erste Treffer gewinnt. +
+ +| Discord Rollen-ID | +Forum-Rolle | ++ |
|---|---|---|
| + | + + | ++ |
+ Speichere zuerst die Einstellungen, dann klicke โTesten" um zu prรผfen ob der Bot erreichbar ist. +
+ + +