Zwei Benutzergruppen-Mods miteinander kombinieren

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Zwei Benutzergruppen-Mods miteinander kombinieren

Beitrag von IPB_Flüchtling »

Ahoi,

ich möchte zwei Mods, welche die Benutzergruppen-Verwaltung (für mich) wesentlich vereinfachen, kombinieren, und zwar folgende Mods:

Group Moderators
Move or Copy User between Usergroups

Der 1. Mod sorgt dafür, dass mehrere Gruppenmoderatoren Benutzer in Gruppen aufnehmen können.
Und der 2. Mod sorgt dafür, dass der Gruppenleiter Benutzer von einer Gruppe in eine andere verschieben oder kopieren kann - Gruppenmoderatoren können das beim Standard-Mod Nr.2 nicht.

Das wollte ich unbedingt ändern, damit auch Gruppenmoderatoren Benutzer in andere Gruppen verschieben/kopieren können. Zu diesem Zwecke habe ich einfach die Berechtigungsabfrage des "Move or Copy User between Usergroups"-Mods durch jene des "Group Moderators"-Mods ersetzt:

Code: Alles auswählen

//-- mod : group moderatorZ ---------------------------------------------------- 
//-- delete 
/* 
   $sql = "SELECT group_moderator 
      FROM " . GROUPS_TABLE . " 
      WHERE group_id = $group_id"; 
   if ( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); 
   } 

   $row = $db->sql_fetchrow($result); 

   if ( $row['group_moderator'] != $userdata['user_id'] && $userdata['user_level'] != ADMIN ) 
   { 
*/ 
//-- add 
   $sql = 'SELECT ug.user_id 
            FROM ' . USER_GROUP_TABLE . ' ug, ' . GROUPS_TABLE . ' g 
            WHERE ug.group_id = ' . intval($group_id) . ' 
               AND g.group_id = ug.group_id 
               AND (ug.user_id = g.group_moderator OR ug.group_moderator = 1)'; 
   if ( !$result = $db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, 'Could not obtain user and group information', '', __LINE__, __FILE__, $sql); 
   } 
   $group_moderators = array(); 
   while ($row = $db->sql_fetchrow($result) ) 
   { 
      $group_moderators[] = intval($row['user_id']); 
   } 
   $db->sql_freeresult($result); 
   if ( (empty($group_moderators) || !in_array($userdata['user_id'], $group_moderators)) && ($userdata['user_level'] != ADMIN) ) 
   { 
//-- fin mod : group moderatorZ ------------------------------------------------
Das hat auch ganz wunderbar geklappt! Mittlerweile können auch Gruppenmoderatoren Benutzer in andere Gruppen verschieben/kopieren!

Ein blödes Problem ist dabei aber übriggeblieben: Wenn jetzt ein User in eine andere Benutzergruppe verschoben oder kopiert wird, taucht er dort doppelt auf. :( Das sieht dann so aus:

[ externes Bild ]

(Zum Vergrößern anklicken.) Ich habe keine Ahnung, weshalb dem so ist und wäre für Hilfe bei der Behebung dieses Schönheitsfehlers dankbar!

Falls sich jemand die Sache ansehen möchte: Hier ist meine komplette groupcp.php in .txt-Format.

Oxpus, der Autor des zweitgenannten Mods, hat mir in dieser Angelegenheit leider nicht weiterhelfen können. Es wäre mir aber wirklich wichtig, beide Mods nebeneinander - und ohne Schönheitsfehler - zum Laufen zu bringen: Ich brauche mehrere Gruppenmoderatoren; und diese sollen Benutzer auch zwischen den Benutzergruppen hin und her verschieben und kopieren können - und zwar ohne dass die Benutzer dabei jedes Mal doppelt angelegt werden.

Hilfe wäre nett!

LG, IPB_Flüchtling
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“