172 lines
5.6 KiB
PHP
Executable File
172 lines
5.6 KiB
PHP
Executable File
<?php
|
|
// translator ready
|
|
// addnews ready
|
|
// mail ready
|
|
require_once("common.php");
|
|
require_once("lib/http.php");
|
|
|
|
check_su_access(SU_EDIT_COMMENTS);
|
|
|
|
tlschema("badword");
|
|
|
|
$op = httpget('op');
|
|
//yuck, this page is a mess, but it gets the job done.
|
|
page_header("Bad word editor");
|
|
|
|
require_once("lib/superusernav.php");
|
|
superusernav();
|
|
addnav("Bad Word Editor");
|
|
|
|
addnav("Refresh the list","badword.php");
|
|
output("`7Here you can edit the words that the game filters. Using * at the start or end of a word will be a wildcard matching anything else attached to the word. These words are only filtered if bad word filtering is turned on in the game settings page.`n`n`0");
|
|
|
|
$test = translate_inline("Test");
|
|
rawoutput("<form action='badword.php?op=test' method='POST'>");
|
|
addnav("","badword.php?op=test");
|
|
output("`7Test a word:`0");
|
|
rawoutput("<input name='word'><input type='submit' class='button' value='$test'></form>");
|
|
if ($op=="test"){
|
|
$word = httppost("word");
|
|
$return = soap($word,true);
|
|
if ($return == $word)
|
|
output("`7\"%s\" does not trip any filters.`0`n`n", $word);
|
|
else
|
|
output("`7%s`0`n`n", $return);
|
|
}
|
|
|
|
output_notl("<font size='+1'>", true);
|
|
output("`7`bGood Words`b`0");
|
|
rawoutput("</font>");
|
|
output("`7 (bad word exceptions)`0`n");
|
|
|
|
$add = translate_inline("Add");
|
|
$remove = translate_inline("Remove");
|
|
rawoutput("<form action='badword.php?op=addgood' method='POST'>");
|
|
addnav("","badword.php?op=addgood");
|
|
output("`7Add a word:`0");
|
|
rawoutput("<input name='word'><input type='submit' class='button' value='$add'></form>");
|
|
rawoutput("<form action='badword.php?op=removegood' method='POST'>");
|
|
addnav("","badword.php?op=removegood");
|
|
output("`7Remove a word:`0");
|
|
rawoutput("<input name='word'><input type='submit' class='button' value='$remove'></form>");
|
|
|
|
|
|
$sql = "SELECT * FROM ".db_prefix("nastywords")." WHERE type='good'";
|
|
$result = db_query($sql);
|
|
$row = db_fetch_assoc($result);
|
|
$words = explode(" ",$row['words']);
|
|
if ($op=="addgood"){
|
|
|
|
$newregexp = stripslashes(httppost('word'));
|
|
|
|
// not sure if the line below should appear, as the strings in the good
|
|
// word list have different behaviour than those in the nasty word list,
|
|
// and strings with single quotes in them currently have odd and
|
|
// unreliable behaviour, both under the good word list and the nasty
|
|
// word list
|
|
// $newregexp = preg_replace('/(?<!\\\\)\'/', '\\\'', $newregexp);
|
|
|
|
// $newregexp = str_replace("\n", '', $newregexp);
|
|
// appears to only remove the line feed character, chr(10),
|
|
// but leaves the carriage return character, chr(13), intact
|
|
$newregexp = str_replace("\n", '', $newregexp);
|
|
$newregexp = str_replace("\r", '', $newregexp);
|
|
|
|
if ( $newregexp !== '' )
|
|
array_push($words,$newregexp);
|
|
|
|
//array_push($words,stripslashes(httppost('word')));
|
|
}
|
|
if ($op=="removegood"){
|
|
|
|
// false if not found
|
|
$removekey = array_search(stripslashes(httppost('word')),$words);
|
|
// $removekey can be 0
|
|
if ( $removekey !== false ) unset($words[$removekey]);
|
|
|
|
//unset($words[array_search(stripslashes(httppost('word')),$words)]);
|
|
}
|
|
|
|
show_word_list($words);
|
|
if ($op=="addgood" || $op=="removegood"){
|
|
$sql = "DELETE FROM " . db_prefix("nastywords") . " WHERE type='good'";
|
|
db_query($sql);
|
|
$sql = "INSERT INTO " . db_prefix("nastywords") . " (words,type) VALUES ('" . addslashes(join(" ",$words)) . "','good')";
|
|
db_query($sql);
|
|
invalidatedatacache("goodwordlist");
|
|
}
|
|
|
|
output_notl("`0`n`n");
|
|
rawoutput("<font size='+1'>");
|
|
output("`7`bNasty Words`b`0");
|
|
rawoutput("</font>");
|
|
output_notl("`n");
|
|
|
|
rawoutput("<form action='badword.php?op=add' method='POST'>");
|
|
addnav("","badword.php?op=add");
|
|
output("`7Add a word:`0");
|
|
rawoutput("<input name='word'><input type='submit' class='button' value='$add'></form>");
|
|
rawoutput("<form action='badword.php?op=remove' method='POST'>");
|
|
addnav("","badword.php?op=remove");
|
|
output("`7Remove a word:`0");
|
|
rawoutput("<input name='word'><input type='submit' class='button' value='$remove'></form>");
|
|
|
|
$sql = "SELECT * FROM " . db_prefix("nastywords") . " WHERE type='nasty'";
|
|
$result = db_query($sql);
|
|
$row = db_fetch_assoc($result);
|
|
$words = explode(" ",$row['words']);
|
|
reset($words);
|
|
|
|
if ($op=="add"){
|
|
|
|
$newregexp = stripslashes(httppost('word'));
|
|
|
|
// automagically escapes all unescaped single quote characters
|
|
$newregexp = preg_replace('/(?<!\\\\)\'/', '\\\'', $newregexp);
|
|
|
|
// $newregexp = str_replace("\n", '', $newregexp);
|
|
// appears to only remove the line feed character, chr(10),
|
|
// but leaves the carriage return character, chr(13), intact
|
|
$newregexp = str_replace("\n", '', $newregexp);
|
|
$newregexp = str_replace("\r", '', $newregexp);
|
|
|
|
if ( $newregexp !== '' ) array_push($words,$newregexp);
|
|
|
|
//array_push($words,stripslashes(httppost('word')));
|
|
}
|
|
if ($op=="remove"){
|
|
// false if not found
|
|
$removekey = array_search(stripslashes(httppost('word')),$words);
|
|
// $removekey can be 0
|
|
if ( $removekey !== false ) unset($words[$removekey]);
|
|
|
|
//unset($words[array_search(stripslashes(httppost('word')),$words)]);
|
|
}
|
|
show_word_list($words);
|
|
output_notl("`0");
|
|
|
|
if ($op=="add" || $op=="remove"){
|
|
$sql = "DELETE FROM " . db_prefix("nastywords") . " WHERE type='nasty'";
|
|
db_query($sql);
|
|
$sql = "INSERT INTO " . db_prefix("nastywords") . " (words,type) VALUES ('" . addslashes(join(" ",$words)) . "','nasty')";
|
|
db_query($sql);
|
|
invalidatedatacache("nastywordlist");
|
|
}
|
|
page_footer();
|
|
|
|
function show_word_list($words){
|
|
sort($words);
|
|
$lastletter="";
|
|
while (list($key,$val)=each($words)){
|
|
if (trim($val)==""){
|
|
unset($words[$key]);
|
|
}else{
|
|
if (substr($val,0,1)!=$lastletter){
|
|
$lastletter = substr($val,0,1);
|
|
output_notl("`n`n`^`b%s`b`@`n", strtoupper($lastletter));
|
|
}
|
|
output_notl("%s ", $val);
|
|
}
|
|
}
|
|
}
|
|
?>
|