summaryrefslogtreecommitdiff
path: root/inc/functions.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/functions.php')
-rw-r--r--inc/functions.php56
1 files changed, 48 insertions, 8 deletions
diff --git a/inc/functions.php b/inc/functions.php
index e695cf5e..4616a0db 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -628,11 +628,16 @@ function displayBan($ban) {
$ban['ip'] = $_SERVER['REMOTE_ADDR'];
if ($ban['post'] && isset($ban['post']['board'], $ban['post']['id'])) {
- openBoard($ban['post']['board']);
-
- $query = query(sprintf("SELECT `thumb`, `file` FROM ``posts_%s`` WHERE `id` = " . (int)$ban['post']['id'], $board['uri']));
- if ($_post = $query->fetch(PDO::FETCH_ASSOC)) {
- $ban['post'] = array_merge($ban['post'], $_post);
+ if (openBoard($ban['post']['board'])) {
+
+ $query = query(sprintf("SELECT `thumb`, `file` FROM ``posts_%s`` WHERE `id` = " .
+ (int)$ban['post']['id'], $board['uri']));
+ if ($_post = $query->fetch(PDO::FETCH_ASSOC)) {
+ $ban['post'] = array_merge($ban['post'], $_post);
+ } else {
+ $ban['post']['file'] = 'deleted';
+ $ban['post']['thumb'] = false;
+ }
} else {
$ban['post']['file'] = 'deleted';
$ban['post']['thumb'] = false;
@@ -644,6 +649,21 @@ function displayBan($ban) {
$post = new Thread($ban['post'], null, false, false);
}
}
+
+ $denied_appeals = array();
+ $pending_appeal = false;
+
+ if ($config['ban_appeals']) {
+ $query = query("SELECT `time`, `denied` FROM `ban_appeals` WHERE `ban_id` = " . (int)$ban['id']) or error(db_error());
+ while ($ban_appeal = $query->fetch(PDO::FETCH_ASSOC)) {
+ if ($ban_appeal['denied']) {
+ $denied_appeals[] = $ban_appeal['time'];
+ } else {
+ $pending_appeal = $ban_appeal['time'];
+ }
+ }
+ }
+
// Show banned page and exit
die(
Element('page.html', array(
@@ -654,7 +674,9 @@ function displayBan($ban) {
'config' => $config,
'ban' => $ban,
'board' => $board,
- 'post' => isset($post) ? $post->build(true) : false
+ 'post' => isset($post) ? $post->build(true) : false,
+ 'denied_appeals' => $denied_appeals,
+ 'pending_appeal' => $pending_appeal
)
))
));
@@ -1524,7 +1546,25 @@ function markup_url($matches) {
$markup_urls[] = $url;
- return '<a target="_blank" rel="nofollow" href="'. $config['link_prefix'] . $url . '">' . $url . '</a>' . $after;
+ $link = (object) array(
+ 'href' => $url,
+ 'text' => $url,
+ 'rel' => 'nofollow',
+ 'target' => '_blank',
+ );
+
+ event('markup-url', $link);
+ $link = (array)$link;
+
+ $parts = array();
+ foreach ($link as $attr => $value) {
+ if ($attr == 'text' || $attr == 'after')
+ continue;
+ $parts[] = $attr . '="' . htmlspecialchars($value) . '"';
+ }
+ if (isset($link['after']))
+ $after = $link['after'] . $after;
+ return '<a ' . implode(' ', $parts) . '>' . utf8tohtml($link['text']) . '</a>' . $after;
}
function unicodify($body) {
@@ -2049,7 +2089,7 @@ function generate_tripcode($name) {
if (isset($config['custom_tripcode']["##{$trip}"]))
$trip = $config['custom_tripcode']["##{$trip}"];
else
- $trip = '!!' . substr(crypt($trip, $config['secure_trip_salt']), -10);
+ $trip = '!!' . substr(crypt($trip, '_..A.' . substr(base64_encode(sha1($trip . $config['secure_trip_salt'], true)), 0, 4)), -10);
} else {
if (isset($config['custom_tripcode']["#{$trip}"]))
$trip = $config['custom_tripcode']["#{$trip}"];