Seite 1 von 1

Usern das posten von Bildern verbieten

Verfasst: 09.07.2007 22:22
von stoner31
Mein Board ist heute von einem Spammer heimgesucht worden, der Porno-Bilder gepostet hat (und das trotz diverser anti-spam mods - muss wohl leider ein menschliches Wesen gewesen sein :(). Um das zu verhindern würde ich gern das Posten von Bildern für User untersagen, während ich als Admin aber gern weiter Bilder posten würde. Geht das irgendwie?

Ach ja, die Suche-Funktion habe ich ausgiebig genutzt, hab aber nichts gefunden, was mir weiterhilft.

Verfasst: 10.07.2007 00:26
von gn#36
So kannst du den IMG BBcode für alle User mit Ausnahme der Administratoren sperren:
1.Aktion: Backup!

öffne includes/bbcode.php
finde

Code: Alles auswählen

function bbencode_first_pass($text, $uid)
{
füge danach ein:

Code: Alles auswählen

global $userdata;
finde

Code: Alles auswählen

// [img]image_url_here[/img] code..
	$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
ersetze durch das hier:

Code: Alles auswählen

// [img]image_url_here[/img] code..
if($userdata['user_level'] == ADMIN)
{
	$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
Bitte beachte, dass diese Änderung keinerlei Auswirkungen auf bisherige Posts hat. Bei allen Nachfolgenden Posts führt diese Änderung dazu, dass die IMG Codes so dargestellt werden, wie sie eingegeben wurden..

Verfasst: 10.07.2007 00:29
von stoner31
Super, vielen Dank, werde ich ausprobieren. :)

Verfasst: 10.07.2007 10:58
von Karsten A
Hallo,

ich schließe mich mal gleich hier an.
Gibt es diese Einschränkung auch für verschiedene Gruppen.

Eine Gruppe soll Bilder einstellen können und alle anderen nicht.
Vielen Dank.

Gruß
Karsten

Verfasst: 10.07.2007 11:26
von SteveHH
Hallo !

Code: Alles auswählen

// [img]image_url_here[/img] code.. 
if($userdata['user_level'] == ADMIN) 
{ 
   $text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text); 
} 
Dann musst Du m.E. den User-Level ersetzen. Man kann sicherlich auch mehrere User Level auf einmal angeben, wie das funktioniert, kann ich dir aber nicht genau sagen.

Gruß,

Steve

Verfasst: 10.07.2007 22:20
von gn#36
Das stimmt so leider nicht ganz. Der Userlevel unterscheidet nur zwischen normalem User, Admin und Moderator. Dementsprechend kann man auf diese Art und Weise zwischen normalen Usern, Moderatoren und Administratoren unterscheiden.
Das heißt aber nicht, dass eine Unterscheidung nach Gruppe ausgeschlossen wäre. Es ist lediglich ein wenig komplizierter und erfordert eine weitere Datenbankabfrage. Anstelle obiger Änderungen sind nun die folgenden notwendig:

1.Aktion: Backup!

öffne includes/bbcode.php
finde

Code: Alles auswählen

function bbencode_first_pass($text, $uid)
{
füge danach ein:

Code: Alles auswählen

global $userdata, $db;
finde

Code: Alles auswählen

// [img]image_url_here[/img] code..
	$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
ersetze durch das hier:

Code: Alles auswählen

// [img]image_url_here[/img] code..
$sql = "SELECT user_id FROM ".USER_GROUP_TABLE . " WHERE group_id IN (2) AND user_pending = 0 AND user_id = ".$userdata['user_id'];
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR,'Konnte Gruppendaten nicht laden','',__LINE__, __FILE__, $sql);
}
if($db->sql_numrows($result) || $userdata['user_level'] == ADMIN )
{
	$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)([^ \?&=\#\"\n\r\t<]*?(\.(jpg|jpeg|gif|png)))\[/img\]#sie", "'[img:$uid]\\1' . str_replace(' ', '%20', '\\3') . '[/img:$uid]'", $text);
}
Die 2 musst du durch die gewünschte Gruppen ID ersetzen, hier lässt sich auch eine ganze Liste an Gruppen definieren (dann jeweils durch Komma getrennt).

Verfasst: 11.07.2007 08:22
von Karsten A
Guten Morgen,

danke gn#36.
Ich werde das mal testen.
Gibt es vielleicht auch eine Möglichkeit, die Rechte nur auf bestimmte Foren zu beschränken?

Verfasst: 11.07.2007 08:29
von yks
hallo,

zwar brauche ich es derzeit nicht, aber auch von mir danke gn#38.
wäre das nicht auch etwas für das snippet-forum ?

viele grüße, yks

Verfasst: 24.07.2007 23:17
von gn#36
Ja wäre es (ich hatte das sowieso vor nachdem ich die Frage gesehen hatte):
http://www.phpbb.de/viewtopic.php?p=884668#884668
;)