disable word censorship for individual forums

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
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

disable word censorship for individual forums

Beitrag von Kiss News »

Hallo!
Habe mir diesen Mod eingebaut, kann aber leider nicht überprüfen, ob er funktioniert, da ich dieses Snippet eingebaut habe:
http://www.phpbb.de/viewtopic.php?t=64639
das fängt gesperrte Wörter schon vor dem posten ab :rolleyes:
das kommt dann auch, wenn ich ein Forum von der Wortzensur ausspare, also dann kommt ein Hinweis, dass nicht gepostet werden kann, da man unzulässige Wörter verwendet.
Kann man vielleicht den Mod an das Snippet anpassen, dass man beide verwenden kann :rolleyes:
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Teste ich bei Gelegenheit mal.
Dürfte da keine grösseren Probleme geben.
Hier wäre im Grunde nur die Bedingung für das nicht zu zensierende Forum mit zu integrieren, bzw. als Bedingung "drumherum" zu bauen, so, wie ich es im Mod auch in der viewtopic.php gemacht habe.
Versuchs mal, vielleicht bekommst Du das ja selber hin.
Ansonsten werde ich mir das genauer anschauen.
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!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

Du meinst also das hier:

#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php

#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT t.topic_id, t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments" . $count_sql . "
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f" . $join_sql_table . "
WHERE $join_sql
AND f.forum_id = t.forum_id
$order_sql";

#
#-----[ IN-LINE FIND ]------------------------------------------
#
f.auth_attachments

#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, f.disable_word_censor

#
#-----[ FIND ]------------------------------------------
#
//
// Replace naughty words
//
if (count($orig_word))

#
#-----[ REPLACE WITH ]------------------------------------------
#
//
// Replace naughty words
//
if (count($orig_word) && ($forum_topic_data['disable_word_censor'] == 0))

in der posting.php anwenden?

bzw. vor dem Snippetschnipsel

$sql = "SELECT word
FROM " . WORDS_TABLE;
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
do
{
if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $HTTP_POST_VARS['message']))
{
$error = TRUE;
$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['censored_word'];
break; // Exit do...while
}
}
while ($row = $db->sql_fetchrow($result));
}
}
$db->sql_freeresult($result);



sowas schreiben wie:
if FORUM = mit Wortzensur, dann {Snippetschnipsel} else überspringe Snippetschnipsel. Aber wie schreibt man das :rolleyes:
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, genau so.

Code: Alles auswählen

 if (count($orig_word) && ($forum_topic_data['disable_word_censor'] == 0))
{
$SQL = "SELECT word
FROM " . WORDS_TABLE;
if ($result = $db->sql_query($SQL))
{
if ($row = $db->sql_fetchrow($result))
{
do
{
if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $HTTP_POST_VARS['message']))
{
$error = TRUE;
$error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['censored_word'];
break; // Exit do...while
}
}
while ($row = $db->sql_fetchrow($result));
}
}
$db->sql_freeresult($result);
}
Musst nur $sql klein schreiben. Das wird hier durch ein Acronym in diesem Fall falsch dargestellt.
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!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

ich habe jetzt
if (count($orig_word) && ($forum_topic_data['disable_word_censor'] == 0))
{

vor dem Codeschnipsel gesetzt, und ein Forum von der Wortzensur ausgenommen. Ergibt diesen Error:
Parse error: parse error, unexpected T_CASE in /usr/export/www/vhosts/funnetwork/hosting/kissfanshop/phpbb2/posting.php on line 649
wenn man was schreiben möchte, und zwar in jedem Forum
line 649 ist:
case 'delete':

bei:
if ($lock_subject)
{
$url = "<a href='viewtopic.$phpEx?" . POST_POST_URL . "=" .$lock_subject."#".$lock_subject."'> ";
$message = addslashes(sprintf($lang['Link_to_post'],$url,"</a>")).$message;
}
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $extra), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length, $post_icon);
//-- fin mod : post icon ---------------------------------------------------------------------------
}
break;

case 'delete':
$post_data['report'] = !empty($post_info['reporter_id']); // ADDED BY Report post hack
case 'poll_delete':
delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
break;
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich dachte, der Code soll in die viewtopic.php...
Ach nein, das Snippet ist ja posting.php.
Häng mal diese Datei hier an. Da passt noch was nicht.
Auch ist die Variable für die Foren-Zensur wahrscheinlich hier falsch...
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!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So müsste es theoretisch passen:
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!
Kiss News
Beiträge: 389
Registriert: So 25.Jul, 2004 18:22

Beitrag von Kiss News »

ja, super :)
Vielen Dank, so scheint es zu funktionieren!
Danke!
Antworten