mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-30 18:24:29 +01:00
Public ban messages
This commit is contained in:
parent
e5d9aa67a1
commit
1a378ee6b2
@ -256,6 +256,12 @@
|
||||
$config['mod']['noticeboard_display'] = 50;
|
||||
// Number of entries to summarize and display on the dashboard
|
||||
$config['mod']['noticeboard_dashboard'] = 5;
|
||||
// Default public ban message
|
||||
$config['mod']['default_ban_message'] = 'USER WAS BANNED FOR THIS POST';
|
||||
// What to append to the post for public bans ("%s" is the message)
|
||||
$config['mod']['ban_message'] = '<span class="public_ban">(%s)</span>';
|
||||
// Wait indefinitely when rebuilding everything
|
||||
$config['mod']['rebuild_timelimit'] = 0;
|
||||
|
||||
// Probably best not to change these:
|
||||
if(!defined('JANITOR')) {
|
||||
@ -347,9 +353,8 @@
|
||||
$config['mod']['noticeboard_post'] = MOD;
|
||||
// Delete entries from the noticeboard
|
||||
$config['mod']['noticeboard_delete'] = ADMIN;
|
||||
|
||||
// Wait indefinitely when rebuilding everything
|
||||
$config['mod']['rebuild_timelimit'] = 0;
|
||||
// Public ban messages; attached to posts
|
||||
$config['mod']['public_ban'] = MOD;
|
||||
|
||||
// Mod links (full HTML)
|
||||
// Correspond to above permission directives
|
||||
|
20
inc/mod.php
20
inc/mod.php
@ -146,11 +146,12 @@
|
||||
return $body;
|
||||
}
|
||||
|
||||
function form_newBan($ip=null, $reason='', $continue=false, $delete=false, $board=false) {
|
||||
function form_newBan($ip=null, $reason='', $continue=false, $delete=false, $board=false, $allow_public = false) {
|
||||
global $config, $mod;
|
||||
return '<fieldset><legend>New ban</legend>' .
|
||||
'<form action="?/ban" method="post">' .
|
||||
($continue ? '<input type="hidden" name="continue" value="' . htmlentities($continue) . '" />' : '') .
|
||||
($delete ? '<input type="hidden" name="delete" value="' . htmlentities($delete) . '" />' : '') .
|
||||
($delete || $allow_public ? '<input type="hidden" name="' . (!$allow_public ? 'delete' : 'post') . '" value="' . htmlentities($delete) . '" />' : '') .
|
||||
($board ? '<input type="hidden" name="board" value="' . htmlentities($board) . '" />' : '') .
|
||||
'<table>' .
|
||||
'<tr>' .
|
||||
@ -167,6 +168,21 @@
|
||||
htmlentities($reason) .
|
||||
'</textarea></td>' .
|
||||
'</tr>' .
|
||||
($mod['type'] >= $config['mod']['public_ban'] && $allow_public ?
|
||||
'<tr>' .
|
||||
'<th><label for="message">Message</label></th>' .
|
||||
'<td><input type="checkbox" id="public_message" name="public_message"/>' .
|
||||
' <input type="text" name="message" id="message" size="35" maxlength="200" value="' . htmlentities($config['mod']['default_ban_message']) . '" />' .
|
||||
' <span class="unimportant">(public; attached to post)</span></td>' .
|
||||
'<script type="text/javascript">' .
|
||||
'document.getElementById(\'message\').disabled = true;' .
|
||||
'document.getElementById(\'public_message\').onchange = function() {' .
|
||||
'document.getElementById(\'message\').disabled = !this.checked;' .
|
||||
'}' .
|
||||
|
||||
'</script>' .
|
||||
'</tr>'
|
||||
: '') .
|
||||
'<tr>' .
|
||||
'<th><label for="length">Length</label></th>' .
|
||||
'<td><input type="text" name="length" id="length" size="20" maxlength="40" />' .
|
||||
|
18
mod.php
18
mod.php
@ -1445,7 +1445,7 @@
|
||||
// Record the action
|
||||
modLog('Created a ' . ($expire ? $expire . ' second' : 'permanent') . " ban for {$_POST['ip']} with " . (!empty($_POST['reason']) ? "reason \"{$_POST['reason']}\"" : 'no reason'));
|
||||
|
||||
$query->execute() or error(db_error($query));
|
||||
//$query->execute() or error(db_error($query));
|
||||
|
||||
// Delete too
|
||||
if($mod['type'] >= $config['mod']['delete'] && isset($_POST['delete']) && isset($_POST['board'])) {
|
||||
@ -1462,6 +1462,20 @@
|
||||
buildIndex();
|
||||
}
|
||||
|
||||
if($mod['type'] >= $config['mod']['public_ban'] && isset($_POST['post']) && isset($_POST['board']) && isset($_POST['public_message']) && isset($_POST['message'])) {
|
||||
openBoard($_POST['board']);
|
||||
|
||||
$post = round($_POST['post']);
|
||||
|
||||
$query = prepare(sprintf("UPDATE `posts_%s` SET `body` = CONCAT(`body`, :body) WHERE `id` = :id", $board['uri']));
|
||||
$query->bindValue(':id', $post, PDO::PARAM_INT);
|
||||
$query->bindValue(':body', sprintf($config['mod']['ban_message'], htmlentities($_POST['message'])));
|
||||
$query->execute() or error(db_error($query));
|
||||
|
||||
// Record the action
|
||||
modLog("Attached a public ban message for post #{$post}: " . $_POST['message']);
|
||||
}
|
||||
|
||||
// Redirect
|
||||
if(isset($_POST['continue']))
|
||||
header('Location: ' . $_POST['continue'], true, $config['redirect_http']);
|
||||
@ -1493,7 +1507,7 @@
|
||||
|
||||
$post = $query->fetch();
|
||||
|
||||
$body = form_newBan($post['ip'], null, isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false, $delete ? $post['id'] : false, $delete ? $boardName : false);
|
||||
$body = form_newBan($post['ip'], null, isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false, $post['id'], $boardName, !$delete);
|
||||
|
||||
echo Element('page.html', Array(
|
||||
'config'=>$config,
|
||||
|
Loading…
Reference in New Issue
Block a user