diff options
| -rw-r--r-- | mod.php | 298 |
1 files changed, 150 insertions, 148 deletions
@@ -2110,183 +2110,185 @@ markup($_POST['note']); $query->bindValue(':body', $_POST['note']); $query->execute() or error(db_error($query)); - } - - $body = ''; - $boards = listBoards(); - foreach($boards as &$_board) { - openBoard($_board['uri']); - $temp = ''; - $query = prepare(sprintf("SELECT * FROM `posts_%s` WHERE `ip` = :ip ORDER BY `sticky` DESC, `time` DESC LIMIT :limit", $_board['uri'])); - $query->bindValue(':ip', $ip); - $query->bindValue(':limit', $config['mod']['ip_recentposts'], PDO::PARAM_INT); - $query->execute() or error(db_error($query)); + header('Location: ?/IP/' . $ip, true, $config['redirect_http']); + } else { + $body = ''; + $boards = listBoards(); + foreach($boards as &$_board) { + openBoard($_board['uri']); - while($post = $query->fetch()) { - if(!$post['thread']) { - $po = new Thread($post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['sticky'], $post['locked'], $post['embed'], '?/', $mod, false); - } else { - $po = new Post($post['id'], $post['thread'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['embed'], '?/', $mod); + $temp = ''; + $query = prepare(sprintf("SELECT * FROM `posts_%s` WHERE `ip` = :ip ORDER BY `sticky` DESC, `time` DESC LIMIT :limit", $_board['uri'])); + $query->bindValue(':ip', $ip); + $query->bindValue(':limit', $config['mod']['ip_recentposts'], PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + while($post = $query->fetch()) { + if(!$post['thread']) { + $po = new Thread($post['id'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['sticky'], $post['locked'], $post['embed'], '?/', $mod, false); + } else { + $po = new Post($post['id'], $post['thread'], $post['subject'], $post['email'], $post['name'], $post['trip'], $post['capcode'], $post['body'], $post['time'], $post['thumb'], $post['thumbwidth'], $post['thumbheight'], $post['file'], $post['filewidth'], $post['fileheight'], $post['filesize'], $post['filename'], $post['ip'], $post['embed'], '?/', $mod); + } + $temp .= $po->build(true) . '<hr/>'; } - $temp .= $po->build(true) . '<hr/>'; - } - if(!empty($temp)) - $body .= '<fieldset><legend>Last ' . $query->rowCount() . ' posts on <a href="?/' . - sprintf($config['board_path'], $_board['uri']) . $config['file_index'] . - '">' . - sprintf($config['board_abbreviation'], $_board['uri']) . ' - ' . $_board['title'] . - '</a></legend>' . $temp . '</fieldset>'; - } + if(!empty($temp)) + $body .= '<fieldset><legend>Last ' . $query->rowCount() . ' posts on <a href="?/' . + sprintf($config['board_path'], $_board['uri']) . $config['file_index'] . + '">' . + sprintf($config['board_abbreviation'], $_board['uri']) . ' - ' . $_board['title'] . + '</a></legend>' . $temp . '</fieldset>'; + } - if($mod['type'] >= $config['mod']['view_notes']) { - $query = prepare("SELECT * FROM `ip_notes` WHERE `ip` = :ip ORDER BY `id` DESC"); - $query->bindValue(':ip', $ip); - $query->execute() or error(db_error($query)); + if($mod['type'] >= $config['mod']['view_notes']) { + $query = prepare("SELECT * FROM `ip_notes` WHERE `ip` = :ip ORDER BY `id` DESC"); + $query->bindValue(':ip', $ip); + $query->execute() or error(db_error($query)); - if($query->rowCount() > 0 || $mod['type'] >= $config['mod']['create_notes'] ) { - $body .= '<fieldset><legend>' . - $query->rowCount() . ' note' . ($query->rowCount() == 1 ?'' : 's') . ' on record' . - '</legend>'; - if($query->rowCount() > 0) { - $body .= '<table class="modlog">' . - '<tr><th>Staff</th><th>Note</th><th>Date</th>' . - ($mod['type'] >= $config['mod']['remove_notes'] ? '<th>Actions</th>' : '') . - '</td>'; - while($note = $query->fetch()) { + if($query->rowCount() > 0 || $mod['type'] >= $config['mod']['create_notes'] ) { + $body .= '<fieldset><legend>' . + $query->rowCount() . ' note' . ($query->rowCount() == 1 ?'' : 's') . ' on record' . + '</legend>'; + if($query->rowCount() > 0) { + $body .= '<table class="modlog">' . + '<tr><th>Staff</th><th>Note</th><th>Date</th>' . + ($mod['type'] >= $config['mod']['remove_notes'] ? '<th>Actions</th>' : '') . + '</td>'; + while($note = $query->fetch()) { - if($note['mod']) { - $_query = prepare("SELECT `username` FROM `mods` WHERE `id` = :id"); - $_query->bindValue(':id', $note['mod']); - $_query->execute() or error(db_error($_query)); - if($_mod = $_query->fetch()) { - if($mod['type'] >= $config['mod']['editusers']) - $staff = '<a href="?/users/' . $note['mod'] . '">' . htmlentities($_mod['username']) . '</a>'; - else - $staff = $_mod['username']; + if($note['mod']) { + $_query = prepare("SELECT `username` FROM `mods` WHERE `id` = :id"); + $_query->bindValue(':id', $note['mod']); + $_query->execute() or error(db_error($_query)); + if($_mod = $_query->fetch()) { + if($mod['type'] >= $config['mod']['editusers']) + $staff = '<a href="?/users/' . $note['mod'] . '">' . htmlentities($_mod['username']) . '</a>'; + else + $staff = $_mod['username']; + } else { + $staff = '<em>??</em>'; + } } else { - $staff = '<em>??</em>'; + $staff = '<em>system</em>'; } - } else { - $staff = '<em>system</em>'; + $body .= '<tr>' . + '<td class="minimal">' . + $staff . + '</td><td>' . + $note['body'] . + '</td><td class="minimal">' . + date($config['post_date'], $note['time']) . + '</td>' . + ($mod['type'] >= $config['mod']['remove_notes'] ? + '<td class="minimal"><a class="unimportant" href="?/IP/' . $ip . '/deletenote/' . $note['id'] . '">[delete]</a></td>' + : '') . + '</tr>'; } - $body .= '<tr>' . - '<td class="minimal">' . - $staff . - '</td><td>' . - $note['body'] . - '</td><td class="minimal">' . - date($config['post_date'], $note['time']) . - '</td>' . - ($mod['type'] >= $config['mod']['remove_notes'] ? - '<td class="minimal"><a class="unimportant" href="?/IP/' . $ip . '/deletenote/' . $note['id'] . '">[delete]</a></td>' - : '') . - '</tr>'; + $body .= '</table>'; } - $body .= '</table>'; - } - if($mod['type'] >= $config['mod']['create_notes']) { - $body .= '<form action="" method="post" style="text-align:center;margin:0">' . - '<table>' . - '<tr>' . - '<th>Staff</th>' . - '<td>' . $mod['username'] . '</td>' . - '</tr>' . - '<tr>' . - '<th><label for="note">Note</label></th>' . - '<td><textarea id="note" name="note" rows="5" cols="30"></textarea></td>' . - '</tr>' . - '<tr>' . - '<td></td>' . - '<td><input type="submit" value="New note" /></td>' . - '</tr>' . - '</table>' . - '</form>'; - } + if($mod['type'] >= $config['mod']['create_notes']) { + $body .= '<form action="" method="post" style="text-align:center;margin:0">' . + '<table>' . + '<tr>' . + '<th>Staff</th>' . + '<td>' . $mod['username'] . '</td>' . + '</tr>' . + '<tr>' . + '<th><label for="note">Note</label></th>' . + '<td><textarea id="note" name="note" rows="5" cols="30"></textarea></td>' . + '</tr>' . + '<tr>' . + '<td></td>' . + '<td><input type="submit" value="New note" /></td>' . + '</tr>' . + '</table>' . + '</form>'; + } - $body .= '</fieldset>'; + $body .= '</fieldset>'; + } } - } - if($mod['type'] >= $config['mod']['view_ban']) { - $query = prepare("SELECT * FROM `bans` LEFT JOIN `boards` ON `boards`.`id` = `board` INNER JOIN `mods` ON `mod` = `mods`.`id` WHERE `ip` = :ip"); - $query->bindValue(':ip', $ip); - $query->execute() or error(db_error($query)); + if($mod['type'] >= $config['mod']['view_ban']) { + $query = prepare("SELECT * FROM `bans` LEFT JOIN `boards` ON `boards`.`id` = `board` INNER JOIN `mods` ON `mod` = `mods`.`id` WHERE `ip` = :ip"); + $query->bindValue(':ip', $ip); + $query->execute() or error(db_error($query)); - if($query->rowCount() > 0) { - $body .= '<fieldset><legend>Ban' . ($query->rowCount() == 1 ? '' : 's') . ' on record</legend><form action="" method="post" style="text-align:center">'; + if($query->rowCount() > 0) { + $body .= '<fieldset><legend>Ban' . ($query->rowCount() == 1 ? '' : 's') . ' on record</legend><form action="" method="post" style="text-align:center">'; - while($ban = $query->fetch()) { - $body .= '<table style="width:400px;margin-bottom:10px;border-bottom:1px solid #ddd;padding:5px"><tr><th>Status</th><td>' . - ($config['mod']['view_banexpired'] && $ban['expires'] != 0 && $ban['expires'] < time() ? - 'Expired' - : 'Active') . - '</td></tr>' . + while($ban = $query->fetch()) { + $body .= '<table style="width:400px;margin-bottom:10px;border-bottom:1px solid #ddd;padding:5px"><tr><th>Status</th><td>' . + ($config['mod']['view_banexpired'] && $ban['expires'] != 0 && $ban['expires'] < time() ? + 'Expired' + : 'Active') . + '</td></tr>' . - // IP - '<tr><th>IP</th><td>' . $ban['ip'] . '</td></tr>' . + // IP + '<tr><th>IP</th><td>' . $ban['ip'] . '</td></tr>' . - // Reason - '<tr><th>Reason</th><td>' . $ban['reason'] . '</td></tr>' . + // Reason + '<tr><th>Reason</th><td>' . $ban['reason'] . '</td></tr>' . - // Board - '<tr><th>Board</th><td>' . - (isset($ban['uri']) ? - sprintf($config['board_abbreviation'], $ban['uri']) - : - '<em>all boards</em>' - ) . '</td></tr>' . + // Board + '<tr><th>Board</th><td>' . + (isset($ban['uri']) ? + sprintf($config['board_abbreviation'], $ban['uri']) + : + '<em>all boards</em>' + ) . '</td></tr>' . - // Set - '<tr><th>Set</th><td>' . date($config['post_date'], $ban['set']) . '</td></tr>' . + // Set + '<tr><th>Set</th><td>' . date($config['post_date'], $ban['set']) . '</td></tr>' . - // Expires - '<tr><th>Expires</th><td>' . - ($ban['expires'] == 0 ? - '<em>Never</em>' - : - date($config['post_date'], $ban['expires']) - ) . - '</td></tr>' . + // Expires + '<tr><th>Expires</th><td>' . + ($ban['expires'] == 0 ? + '<em>Never</em>' + : + date($config['post_date'], $ban['expires']) + ) . + '</td></tr>' . - // Staff - '<tr><th>Staff</th><td>' . - ($mod['type'] < $config['mod']['view_banstaff'] ? - ($config['mod']['view_banquestionmark'] ? - '?' + // Staff + '<tr><th>Staff</th><td>' . + ($mod['type'] < $config['mod']['view_banstaff'] ? + ($config['mod']['view_banquestionmark'] ? + '?' + : + ($ban['type'] == JANITOR ? 'Janitor' : + ($ban['type'] == MOD ? 'Mod' : + ($ban['type'] == ADMIN ? 'Admin' : + '?'))) + ) : - ($ban['type'] == JANITOR ? 'Janitor' : - ($ban['type'] == MOD ? 'Mod' : - ($ban['type'] == ADMIN ? 'Admin' : - '?'))) - ) - : - $ban['username'] - ) . - '</td></tr>' . + $ban['username'] + ) . + '</td></tr>' . - '</tr></table>'; - } + '</tr></table>'; + } - $body .= '<input type="submit" name="unban" value="Remove ban' . ($query->rowCount() == 1 ? '' : 's') . '" ' . - ($mod['type'] < $config['mod']['unban'] ? 'disabled' : '') . - '/></form></fieldset>'; + $body .= '<input type="submit" name="unban" value="Remove ban' . ($query->rowCount() == 1 ? '' : 's') . '" ' . + ($mod['type'] < $config['mod']['unban'] ? 'disabled' : '') . + '/></form></fieldset>'; + } } - } - if($mod['type'] >= $config['mod']['ip_banform']) - $body .= form_newBan($ip, null, '?/IP/' . $ip); + if($mod['type'] >= $config['mod']['ip_banform']) + $body .= form_newBan($ip, null, '?/IP/' . $ip); - echo Element('page.html', Array( - 'config'=>$config, - 'title'=>'IP: ' . $ip, - 'subtitle' => $host, - 'body'=>$body, - 'mod'=>true - ) - ); + echo Element('page.html', Array( + 'config'=>$config, + 'title'=>'IP: ' . $ip, + 'subtitle' => $host, + 'body'=>$body, + 'mod'=>true + ) + ); + } } else { error($config['error']['404']); } |
