Kleines Snippet für die Wortzensur im board...

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Kleines Snippet für die Wortzensur im board...

Beitrag von schmidtedv »

Hatte den MOD Highlight Bad Words in den Fingern. an dem störte mich die generell neue Funktion...daher hab' ich mir gedacht, ich ändere einfach die originale Funktion so ab, das Moderatoren/Admins sehen, was zensiert wird und andere nur die Zensur...hoffe, das ist so korrekt, bei mir läufts jedenfalls:

functions.php die folgende funktion ersetzen:

Code: Alles auswählen

function obtain_word_list(&$orig_word, &$replacement_word)
{
	global $db, $is_auth;

	$sql = "SELECT word, replacement
		FROM  " . WORDS_TABLE;
	if (!($result = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not get censored words from database', '', __LINE__, __FILE__, $sql);
	}

	if ($row = $db->sql_fetchrow($result)) {
		do {
			$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i';
			if ($is_auth['auth_mod']) {
				$replacement_word[] = '[zensiert: <font color="red">' . $row['word'] . '</font>]';
			} else {
				$replacement_word[] = '<font color="red">' . $row['replacement'] . '</font>';
			}
		} while ($row = $db->sql_fetchrow($result));
	}

	return true;
}
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich habs mal hierher verschoben.
Der ein oder andere wirds vielleicht verwenden wollen.

Danke jedenfalls dafür...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

...hatte ich in Projekten gepostet, da ich (Fehler?) im forum SNIPPETS direkt nicht Posten kann (kein button), nur im Unterforum diverses...
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Kein Fehler, Absicht.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

ok :-)
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

...erweitert für Admins (Suchergebnisse z.B. nun auch für admin mit "Original-Wort" und hoffentlich immernoch korrekt :-):

Code: Alles auswählen

function obtain_word_list(&$orig_word, &$replacement_word)
{
	global $db, $is_auth, $userdata;

	$sql = "SELECT word, replacement
		FROM  " . WORDS_TABLE;
	if (!($result = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not get censored words from database', '', __LINE__, __FILE__, $sql);
	}

	if ($row = $db->sql_fetchrow($result)) {
		do {
			$orig_word[] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i';
			if ($is_auth['auth_mod'] || ($userdata['user_level'] == ADMIN)) {
				$replacement_word[] = '[zensiert: <font color="red">' . $row['word'] . '</font>]';
			} else {
				$replacement_word[] = '<font color="red">' . $row['replacement'] . '</font>';
			}
		} while ($row = $db->sql_fetchrow($result));
	}

	return true;
}
Ich habe hierzu in die global noch $userdata mit eingehangen und die if-Abfrage erweitert, was auf diese Art hoffentlich korrekt ist!?
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Es ist nicht nur korrekt, sondern notwendig, sonst stehen die Befugnisse und Userdaten dort nicht zur Verfügung ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten