acl_get('a_words')) { return; } $module['Posts']['Word_Censor'] = basename(__FILE__) . $SID; return; } define('IN_PHPBB', 1); // Include files $phpbb_root_path = '../'; require($phpbb_root_path . 'extension.inc'); require('pagestart.' . $phpEx); require($phpbb_root_path . 'includes/functions_admin.' . $phpEx); // Do we have forum admin permissions? if (!$auth->acl_get('a_words')) { trigger_error($user->lang['NO_ADMIN']); } // What do we want to do? if (isset($_REQUEST['mode'])) { $mode = $_REQUEST['mode']; } else { // These could be entered via a form button if (isset($_POST['add'])) { $mode = 'add'; } else if (isset($_POST['save'])) { $mode = 'save'; } else { $mode = ''; } } if ($mode != '') { switch ($mode) { case 'edit': case 'add': $word_id = (isset($_GET['id'])) ? intval($_GET['id']) : 0; $s_hidden_fields = ''; if ($mode == 'edit') { if (!$word_id) { trigger_error($user->lang['No_word_selected']); } $sql = "SELECT * FROM " . WORDS_TABLE . " WHERE word_id = $word_id"; $result = $db->sql_query($sql); $word_info = $db->sql_fetchrow($result); $s_hidden_fields .= ''; } page_header($user->lang['Words_title']); ?>
lang['Words_explain']; ?>
lang['Must_enter_word']); } $sql = ($word_id) ? "UPDATE " . WORDS_TABLE . " SET word = '" . sql_quote($word) . "', replacement = '" . sql_quote($replacement) . "' WHERE word_id = $word_id" : "INSERT INTO " . WORDS_TABLE . " (word, replacement) VALUES ('" . sql_quote($word) . "', '" . sql_quote($replacement) . "')"; $db->sql_query($sql); $log_action = ($word_id) ? 'log_edit_word' : 'log_add_word'; add_admin_log($log_action, stripslashes($word)); $message = ($word_id) ? $user->lang['Word_updated'] : $user->lang['Word_added']; break; case 'delete': if (isset($_POST['id']) || isset($_GET['id'])) { $word_id = (isset($_POST['id'])) ? intval($_POST['id']) : intval($_GET['id']); } else { trigger_error($user->lang['Must_specify_word']); } $sql = "DELETE FROM " . WORDS_TABLE . " WHERE word_id = $word_id"; $db->sql_query($sql); add_admin_log('log_delete_word'); $message = $user->lang['Word_remove']; break; } $sql = "SELECT * FROM " . WORDS_TABLE . " ORDER BY word"; $result = $db->sql_query($sql); $cache_str = "\$word_censors = array(\n"; $cache_str_match = $cache_str_replace = ''; if ($row = $db->sql_fetchrow($result)) { do { $cache_str_match .= "\t\t'" . addslashes('#\b' . str_replace('\*', '.*?', preg_quote($row['word'], '#')) . '\b#i') . "',\n"; $cache_str_replace .= "\t\t'" . addslashes($row['replacement']) . "',\n"; } while ($row = $db->sql_fetchrow($result)); $cache_str .= "\t'match' => array(\n$cache_str_match\t),\n\t'replace' => array(\n$cache_str_replace\t)\n);"; } $db->sql_freeresult($result); config_cache_write('\$word_censors = array\(.*?\);', $cache_str); trigger_error($message); } else { page_header($user->lang['Words_title']); ?>lang['Words_explain']; ?>