forked from leftypol/leftypol
Use template instead of inline HTML for ban messages.
This commit is contained in:
parent
7ecebe4616
commit
51cdaaccd1
5 changed files with 99 additions and 73 deletions
|
@ -453,81 +453,21 @@
|
|||
}
|
||||
}
|
||||
|
||||
function formatDate($timestamp) {
|
||||
return date('jS F, Y', $timestamp);
|
||||
}
|
||||
|
||||
function displayBan($ban) {
|
||||
global $config;
|
||||
|
||||
$body = '<div class="ban">
|
||||
<h2>You are banned! ;_;</h2>
|
||||
<p>You have been banned from ' .
|
||||
(!isset($ban['uri']) ?
|
||||
'all boards':
|
||||
'<strong>' . sprintf($config['board_abbreviation'], $ban['uri']) . '</strong>'
|
||||
) .
|
||||
' ' .
|
||||
($ban['reason'] ? 'for the following reason:' : 'for an unspecified reason.') .
|
||||
'</p>' .
|
||||
($ban['reason'] ?
|
||||
'<p class="reason">' .
|
||||
$ban['reason'] .
|
||||
'</p>'
|
||||
: '') .
|
||||
'<p>Your ban was filed on <strong>' .
|
||||
formatDate($ban['set']) .
|
||||
'</strong>, and <span id="expires">' .
|
||||
($ban['expires'] ?
|
||||
'expires <span id="countdown">' . until($ban['expires']) . '</span> from now, which is on <strong>' .
|
||||
formatDate($ban['expires']) .
|
||||
'</strong>
|
||||
<script>
|
||||
// return date("jS F, Y", $timestamp);
|
||||
var secondsLeft = ' . ($ban['expires'] - time()) . '
|
||||
var end = new Date().getTime() + secondsLeft*1000;
|
||||
function updateExpiresTime() {
|
||||
countdown.firstChild.nodeValue = until(end);
|
||||
}
|
||||
function until(end) {
|
||||
var now = new Date().getTime();
|
||||
var diff = Math.round((end - now) / 1000); // in seconds
|
||||
if (diff < 0) {
|
||||
document.getElementById("expires").innerHTML = "has since expired. Refresh the page to continue.";
|
||||
//location.reload(true);
|
||||
clearInterval(int);
|
||||
return "";
|
||||
} else if (diff < 60) {
|
||||
return diff + " second" + (diff == 1 ? "" : "s");
|
||||
} else if (diff < 60*60) {
|
||||
return (num = Math.round(diff/(60))) + " minute" + (num == 1 ? "" : "s");
|
||||
} else if (diff < 60*60*24) {
|
||||
return (num = Math.round(diff/(60*60))) + " hour" + (num == 1 ? "" : "s");
|
||||
} else if (diff < 60*60*24*7) {
|
||||
return (num = Math.round(diff/(60*60*24))) + " day" + (num == 1 ? "" : "s");
|
||||
} else if (diff < 60*60*24*365) {
|
||||
return (num = Math.round(diff/(60*60*24*7))) + " week" + (num == 1 ? "" : "s");
|
||||
} else {
|
||||
return (num = Math.round(diff/(60*60*24*365))) + " year" + (num == 1 ? "" : "s");
|
||||
}
|
||||
}
|
||||
var countdown = document.getElementById("countdown");
|
||||
|
||||
updateExpiresTime();
|
||||
var int = setInterval(updateExpiresTime, 1000);
|
||||
</script>'
|
||||
: '<em>will not expire</em>.' ) .
|
||||
'</span></p>
|
||||
<p>Your IP address is <strong>' . $_SERVER['REMOTE_ADDR'] . '</strong>.</p>
|
||||
</div>';
|
||||
|
||||
$ban['ip'] = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
// Show banned page and exit
|
||||
die(Element('page.html', Array(
|
||||
die(
|
||||
Element('page.html', Array(
|
||||
'title' => 'Banned!',
|
||||
'config' => $config,
|
||||
'title' => 'Banned',
|
||||
'subtitle' => 'You are banned!',
|
||||
'body' => $body
|
||||
)
|
||||
'body' => Element('banned.html', Array(
|
||||
'config' => $config,
|
||||
'ban' => $ban
|
||||
)
|
||||
))
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -549,7 +489,7 @@
|
|||
$query->bindValue(':board', $board);
|
||||
$query->execute() or error(db_error($query));
|
||||
}
|
||||
if($query->rowCount() < 1 && $config['ban_cidr']) {
|
||||
if($query->rowCount() < 1 && $config['ban_cidr'] && !isIPv6()) {
|
||||
// my most insane SQL query yet
|
||||
$query = prepare("SELECT `set`, `expires`, `reason`, `board`, `uri`, `bans`.`id` FROM `bans` LEFT JOIN `boards` ON `boards`.`id` = `board` WHERE (`board` IS NULL OR `uri` = :board)
|
||||
AND (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue