Seite 4 von 5

Verfasst: 19.09.2005 23:06
von Natheedo
Mal noch was ....

Ich hab das Script eben getesten und einen Spezialrang "Banned" erstellt ...

Doch irgendwie bekommt ein gebannter User gar kein Rang !?!

Hab :
// Hier die ID des Spezialranges einsetzen, den gebannte User erhalten sollen.
Hab die ID auf 3, da Admin 1, Mod 2 und Banned 3 ... Oder ist damit was anderes gemeint? Bzw. wie finde ich die ID raus ?

Natheedo

Verfasst: 08.10.2005 10:19
von maxxo
doch nichts, so wie vermutet?

Mit dem Umzug biste mittlerweile schon fertig, oder? ;)

Verfasst: 08.10.2005 21:57
von maxxo
war klar, hatte ich doch richtig vermutet, wird am ende doch ned geholfen :(

nach einem monat..

Verfasst: 16.10.2005 01:39
von cYbercOsmOnauT
Man merkt, das Du noch nie selber umgezogen bist. 1 Monat ist da mal gar nichts bis alles wieder "normale Wege" geht. :D Ich war 3 Wochen offline und auch dort gibt es etliches nachzuarbeiten. Aber keiner soll sagen, dass ich Versprechen nicht halte. Ich werde es mir nochmal vornehmen, sobald mein Kopf ein wenig frei ist (die Tage irgendwann).

Sorry wegen der Verzögerung, aber Du hast zu einer falschen Zeit gefragt :D
Tekin

Verfasst: 16.10.2005 09:52
von maxxo
ok, hattest mir das in der PN ja schon geschrieben ;)

Danke!
Werd noch ein bisschen warten


PS: Doch, bin schonmal umgezogen - als ich 2 war :D

Verfasst: 24.10.2005 02:09
von cYbercOsmOnauT
Heute fand ich endlich mal Zeit mein Versprechen einzulösen. :)

Zuerst der SQL-Query zum Speichern des alten Ranges.
SQL

Code: 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 ADD

Code: 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 ADD

Code: 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

Verfasst: 26.10.2005 09:34
von maxxo
Klasse, des funktioniert.

Ich danke dir echt vielmahls! :)

Verfasst: 31.10.2005 13:32
von Natheedo
Irgendwie funzt das bei mir nicht ...

Was mache ich denn falsch ?

Also bei :
$banrank = 2; // Hier die ID des Spezialranges einsetzen, den gebannte User erhalten sollen.
Hab ich die ID 3 genommen, die drei weil 1.te spezialrang Administrator ist, der 2.te Moderator ist und 3ten. hab ich nunmal den Spezialrang "Banned" gemacht.

Doch wenn ich jemanden banne, dann hat der _keinen_ Usertitel ... Und wenn ich diesen dann entbanne, hat er immernoch _keinen_ obwohl er ja eigentlich den alten haben müsste !?!

Kann mir jemadn kurz helfen ?

Danke !

Natheedo

Verfasst: 09.12.2006 23:53
von dslmonster
Huhuuu zusammen, is zwar älterer Thread aber vielleicht ja der passende ;)

Also habe den kleinen MOD von cYbercOsmOnauT eingebaut, nun noch eine frage, wie würde das vielleicht aussehen sobald der User gesperrt ist, automatisch alle seine Infos ausgeblendet werden?

So wie Email .. PN usw ...

gruß
dslmonster

Verfasst: 10.12.2006 00:39
von Stefane
also am einfachsten wäre es, wenn die aus seinem Profil gelöscht würden...das ist dann eine einziges Update der DB...was hinzu kommt.
Der Nachteil ist dann aber, dass der User...sollte er mal wieder entbannt werden, alle Daten neu eintragen muss.
Eine andere Möglichkeit wäre die Lösung über einen Switch. Der müsste dann aber im Profil und in der viewtopic erstellt werden. Das ist ein wenig aufwändiger, aber der User behält seine Daten, so dass sie nach einem evtl. Entban noch erhalten bleiben.