diff options
| author | Michael Save <savetheinternet@tinyboard.org> | 2012-04-16 20:11:10 +1000 |
|---|---|---|
| committer | Michael Save <savetheinternet@tinyboard.org> | 2012-04-16 20:11:10 +1000 |
| commit | cc614e36b4135d5b8ac000bad8ed450df0e61ffe (patch) | |
| tree | 07026bb2a61e7d36498e40076383762b1098d007 /inc/mod/pages.php | |
| parent | f0412b08140e256056fd1ea41ea1930fcc321d22 (diff) | |
multiple improvements
Diffstat (limited to 'inc/mod/pages.php')
| -rw-r--r-- | inc/mod/pages.php | 80 |
1 files changed, 75 insertions, 5 deletions
diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 3c3c08a4..7e6cddfe 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -15,6 +15,7 @@ function mod_page($title, $template, $args) { echo Element('page.html', array( 'config' => $config, 'mod' => $mod, + 'hide_dashboard_link' => $template == 'mod/dashboard.html', 'title' => $title, 'body' => Element($template, array_merge( @@ -262,10 +263,12 @@ function mod_bans($page_no = 1) { $unban[] = $match[1]; } - query('DELETE FROM `bans` WHERE `id` = ' . implode(' OR `id` = ', $unban)) or error(db_error()); + if (!empty($unban)) { + query('DELETE FROM `bans` WHERE `id` = ' . implode(' OR `id` = ', $unban)) or error(db_error()); - foreach ($unban as $id) { - modLog("Removed ban #{$id}"); + foreach ($unban as $id) { + modLog("Removed ban #{$id}"); + } } header('Location: ?/bans', true, $config['redirect_http']); @@ -278,8 +281,8 @@ function mod_bans($page_no = 1) { $query = prepare("SELECT `bans`.*, `username` FROM `bans` INNER JOIN `mods` ON `mod` = `mods`.`id` WHERE `expires` = 0 OR `expires` > :time ORDER BY `set` DESC LIMIT :offset, :limit"); } $query->bindValue(':time', time(), PDO::PARAM_INT); - $query->bindValue(':limit', $config['mod']['modlog_page'], PDO::PARAM_INT); - $query->bindValue(':offset', ($page_no - 1) * $config['mod']['modlog_page'], PDO::PARAM_INT); + $query->bindValue(':limit', $config['mod']['banlist_page'], PDO::PARAM_INT); + $query->bindValue(':offset', ($page_no - 1) * $config['mod']['banlist_page'], PDO::PARAM_INT); $query->execute() or error(db_error($query)); $bans = $query->fetchAll(PDO::FETCH_ASSOC); @@ -295,6 +298,58 @@ function mod_bans($page_no = 1) { mod_page('Ban list', 'mod/ban_list.html', array('bans' => $bans, 'count' => $count)); } + +function mod_lock($board, $unlock, $post) { + global $config; + + if (!openBoard($board)) + error($config['error']['noboard']); + + if (!hasPermission($config['mod']['lock'], $board)) + error($config['error']['noaccess']); + + $query = prepare(sprintf('UPDATE `posts_%s` SET `locked` = :locked WHERE `id` = :id AND `thread` IS NULL', $board)); + $query->bindValue(':id', $post); + $query->bindValue(':locked', $unlock ? 0 : 1); + $query->execute() or error(db_error($query)); + + header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']); +} + +function mod_sticky($board, $unsticky, $post) { + global $config; + + if (!openBoard($board)) + error($config['error']['noboard']); + + if (!hasPermission($config['mod']['sticky'], $board)) + error($config['error']['noaccess']); + + $query = prepare(sprintf('UPDATE `posts_%s` SET `sticky` = :sticky WHERE `id` = :id AND `thread` IS NULL', $board)); + $query->bindValue(':id', $post); + $query->bindValue(':sticky', $unsticky ? 0 : 1); + $query->execute() or error(db_error($query)); + + header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']); +} + +function mod_bumplock($board, $unbumplock, $post) { + global $config; + + if (!openBoard($board)) + error($config['error']['noboard']); + + if (!hasPermission($config['mod']['bumplock'], $board)) + error($config['error']['noaccess']); + + $query = prepare(sprintf('UPDATE `posts_%s` SET `sage` = :bumplock WHERE `id` = :id AND `thread` IS NULL', $board)); + $query->bindValue(':id', $post); + $query->bindValue(':bumplock', $unbumplock ? 0 : 1); + $query->execute() or error(db_error($query)); + + header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']); +} + function mod_delete($board, $post) { global $config, $mod; @@ -599,4 +654,19 @@ function mod_report_dismiss($id, $all = false) { header('Location: ?/reports', true, $config['redirect_http']); } +function mod_debug_antispam() { + $args = array(); + + $query = query('SELECT COUNT(*) FROM `antispam`') or error(db_error()); + $args['total'] = number_format($query->fetchColumn(0)); + + $query = query('SELECT COUNT(*) FROM `antispam` WHERE `expires` IS NOT NULL') or error(db_error()); + $args['expiring'] = number_format($query->fetchColumn(0)); + + $query = query('SELECT * FROM `antispam` /* WHERE `passed` > 0 */ ORDER BY `passed` DESC LIMIT 25') or error(db_error()); + $args['top'] = $query->fetchAll(PDO::FETCH_ASSOC); + + mod_page("Debug: Anti-spam", 'mod/debug/antispam.html', $args); +} + |
