($bb_cfg[\'use_word_censor\'] in config.php)');
}
$mode = request_var('mode', '');
$mode = htmlspecialchars($mode);
if (isset($_POST['add'])) {
$mode = 'add';
} elseif (isset($_POST['save'])) {
$mode = 'save';
}
if ($mode != '') {
if ($mode == 'edit' || $mode == 'add') {
$word_id = (int)request_var('id', 0);
$s_hidden_fields = $word = $replacement = '';
if ($mode == 'edit') {
if ($word_id) {
$sql = 'SELECT * FROM ' . BB_WORDS . " WHERE word_id = $word_id";
if (!$result = DB()->sql_query($sql)) {
bb_die('Could not query words table #1');
}
$word_info = DB()->sql_fetchrow($result);
$s_hidden_fields .= '';
$word = $word_info['word'];
$replacement = $word_info['replacement'];
} else {
bb_die($lang['NO_WORD_SELECTED']);
}
}
$template->assign_vars([
'TPL_ADMIN_WORDS_EDIT' => true,
'WORD' => $word,
'REPLACEMENT' => $replacement,
'S_WORDS_ACTION' => 'admin_words.php',
'S_HIDDEN_FIELDS' => $s_hidden_fields,
]);
} elseif ($mode == 'save') {
$word_id = (int)request_var('id', 0);
$word = trim(request_var('word', ''));
$replacement = trim(request_var('replacement', ''));
if ($word == '' || $replacement == '') {
bb_die($lang['MUST_ENTER_WORD']);
}
if ($word_id) {
$sql = 'UPDATE ' . BB_WORDS . "
SET word = '" . DB()->escape($word) . "', replacement = '" . DB()->escape($replacement) . "'
WHERE word_id = $word_id";
$message = $lang['WORD_UPDATED'];
} else {
$sql = 'INSERT INTO ' . BB_WORDS . " (word, replacement)
VALUES ('" . DB()->escape($word) . "', '" . DB()->escape($replacement) . "')";
$message = $lang['WORD_ADDED'];
}
if (!$result = DB()->sql_query($sql)) {
bb_die('Could not insert data into words table');
}
$datastore->update('censor');
$message .= '
' . sprintf($lang['CLICK_RETURN_WORDADMIN'], '', '') . '
' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', '');
bb_die($message);
} elseif ($mode == 'delete') {
$word_id = (int)request_var('id', 0);
if ($word_id) {
$sql = 'DELETE FROM ' . BB_WORDS . " WHERE word_id = $word_id";
if (!$result = DB()->sql_query($sql)) {
bb_die('Could not remove data from words table');
}
$datastore->update('censor');
bb_die($lang['WORD_REMOVED'] . '
' . sprintf($lang['CLICK_RETURN_WORDADMIN'], '', '') . '
' . sprintf($lang['CLICK_RETURN_ADMIN_INDEX'], '', ''));
} else {
bb_die($lang['NO_WORD_SELECTED']);
}
}
} else {
$sql = 'SELECT * FROM ' . BB_WORDS . ' ORDER BY word';
if (!$result = DB()->sql_query($sql)) {
bb_die('Could not query words table #2');
}
$word_rows = DB()->sql_fetchrowset($result);
$word_count = count($word_rows);
$template->assign_vars([
'TPL_ADMIN_WORDS_LIST' => true,
'S_WORDS_ACTION' => 'admin_words.php',
'S_HIDDEN_FIELDS' => ''
]);
for ($i = 0; $i < $word_count; $i++) {
$word = $word_rows[$i]['word'];
$replacement = $word_rows[$i]['replacement'];
$word_id = $word_rows[$i]['word_id'];
$row_class = !($i % 2) ? 'row1' : 'row2';
$template->assign_block_vars('words', [
'ROW_CLASS' => $row_class,
'WORD' => $word,
'REPLACEMENT' => $replacement,
'U_WORD_EDIT' => "admin_words.php?mode=edit&id=$word_id",
'U_WORD_DELETE' => "admin_words.php?mode=delete&id=$word_id"
]);
}
}
print_page('admin_words.tpl', 'admin');