Heute fand ich endlich mal Zeit mein Versprechen einzulösen.
Zuerst der SQL-Query zum Speichern des alten Ranges.
SQLCode: Alles auswählen
ALTER TABLE phpbb_users ADD COLUMN user_oldrank int(11) NULL DEFAULT '0' AFTER user_rank;
Nun die Änderungen an
admin/admin_user_ban.php
FIND (Zeilen 195,196)Code: Alles auswählen
message_die(GENERAL_ERROR, "Couldn't insert ban_userid info into database", "", __LINE__, __FILE__, $sql);
}
AFTER ADDCode: Alles auswählen
$banrank = 2; // Hier die ID des Spezialranges einsetzen, den gebannte User erhalten sollen.
// Setzen des neuen Spezialranges für den gebannten User
$sql = "UPDATE ". USERS_TABLE ."
SET user_oldrank = user_rank, user_rank = '$banrank'
WHERE user_id = ". $user_list[$i];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't set banrank on the banned user", "", __LINE__, __FILE__, $sql);
}
FIND (Zeile 289)Code: Alles auswählen
$where_sql .= ( ( $where_sql != '' ) ? ', ' : '' ) . intval($user_list[$i]);
AFTER ADDCode: Alles auswählen
// Wie lautet die Userid des Entbannten?
$sql = "SELECT ban_userid FROM ". BANLIST_TABLE ."
WHERE ban_id = ". $user_list[$i];
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't gain userid of the unbanned user", "", __LINE__, __FILE__, $sql);
}
$unban = $db->sql_fetchrow($result);
// Userrang wieder auf normal setzen beim Entbannen
$sql = "UPDATE ". USERS_TABLE ."
SET user_rank = user_oldrank
WHERE user_id = ". $unban['ban_userid'];
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't set normal rank on the unbanned user", "", __LINE__, __FILE__, $sql);
}
Auf meinem Testboard getestet und für funktionsfähig befunden.

Viel Spaß bei der Nutzung und sorry wegen der Umzugsverspätung.
Grüße aus Göttingen,
Tekin