|
|
@@ -1733,43 +1733,6 @@ function mod_config() { |
|
|
|
mod_page(_('Config editor'), 'mod/config-editor.html', array('conf' => $conf)); |
|
|
|
} |
|
|
|
|
|
|
|
function mod_debug_antispam() { |
|
|
|
global $pdo, $config; |
|
|
|
|
|
|
|
$args = array(); |
|
|
|
|
|
|
|
if (isset($_POST['board'], $_POST['thread'])) { |
|
|
|
$where = '`board` = ' . $pdo->quote($_POST['board']); |
|
|
|
if ($_POST['thread'] != '') |
|
|
|
$where .= ' AND `thread` = ' . $pdo->quote($_POST['thread']); |
|
|
|
|
|
|
|
if (isset($_POST['purge'])) { |
|
|
|
$query = prepare('UPDATE `antispam` SET `expires` = UNIX_TIMESTAMP() + :expires WHERE' . $where); |
|
|
|
$query->bindValue(':expires', $config['spam']['hidden_inputs_expire']); |
|
|
|
$query->execute() or error(db_error()); |
|
|
|
} |
|
|
|
|
|
|
|
$args['board'] = $_POST['board']; |
|
|
|
$args['thread'] = $_POST['thread']; |
|
|
|
} else { |
|
|
|
$where = ''; |
|
|
|
} |
|
|
|
|
|
|
|
$query = query('SELECT COUNT(*) FROM `antispam`' . ($where ? " WHERE $where" : '')) or error(db_error()); |
|
|
|
$args['total'] = number_format($query->fetchColumn(0)); |
|
|
|
|
|
|
|
$query = query('SELECT COUNT(*) FROM `antispam` WHERE `expires` IS NOT NULL' . ($where ? " AND $where" : '')) or error(db_error()); |
|
|
|
$args['expiring'] = number_format($query->fetchColumn(0)); |
|
|
|
|
|
|
|
$query = query('SELECT * FROM `antispam` ' . ($where ? "WHERE $where" : '') . ' ORDER BY `passed` DESC LIMIT 40') or error(db_error()); |
|
|
|
$args['top'] = $query->fetchAll(PDO::FETCH_ASSOC); |
|
|
|
|
|
|
|
$query = query('SELECT * FROM `antispam` ' . ($where ? "WHERE $where" : '') . ' ORDER BY `created` DESC LIMIT 20') or error(db_error()); |
|
|
|
$args['recent'] = $query->fetchAll(PDO::FETCH_ASSOC); |
|
|
|
|
|
|
|
mod_page(_('Debug: Anti-spam'), 'mod/debug/antispam.html', $args); |
|
|
|
} |
|
|
|
|
|
|
|
function mod_themes_list() { |
|
|
|
global $config; |
|
|
|
|
|
|
@@ -1897,3 +1860,65 @@ function mod_theme_rebuild($theme_name) { |
|
|
|
'theme_name' => $theme_name, |
|
|
|
)); |
|
|
|
} |
|
|
|
|
|
|
|
function mod_debug_antispam() { |
|
|
|
global $pdo, $config; |
|
|
|
|
|
|
|
$args = array(); |
|
|
|
|
|
|
|
if (isset($_POST['board'], $_POST['thread'])) { |
|
|
|
$where = '`board` = ' . $pdo->quote($_POST['board']); |
|
|
|
if ($_POST['thread'] != '') |
|
|
|
$where .= ' AND `thread` = ' . $pdo->quote($_POST['thread']); |
|
|
|
|
|
|
|
if (isset($_POST['purge'])) { |
|
|
|
$query = prepare('UPDATE `antispam` SET `expires` = UNIX_TIMESTAMP() + :expires WHERE' . $where); |
|
|
|
$query->bindValue(':expires', $config['spam']['hidden_inputs_expire']); |
|
|
|
$query->execute() or error(db_error()); |
|
|
|
} |
|
|
|
|
|
|
|
$args['board'] = $_POST['board']; |
|
|
|
$args['thread'] = $_POST['thread']; |
|
|
|
} else { |
|
|
|
$where = ''; |
|
|
|
} |
|
|
|
|
|
|
|
$query = query('SELECT COUNT(*) FROM `antispam`' . ($where ? " WHERE $where" : '')) or error(db_error()); |
|
|
|
$args['total'] = number_format($query->fetchColumn(0)); |
|
|
|
|
|
|
|
$query = query('SELECT COUNT(*) FROM `antispam` WHERE `expires` IS NOT NULL' . ($where ? " AND $where" : '')) or error(db_error()); |
|
|
|
$args['expiring'] = number_format($query->fetchColumn(0)); |
|
|
|
|
|
|
|
$query = query('SELECT * FROM `antispam` ' . ($where ? "WHERE $where" : '') . ' ORDER BY `passed` DESC LIMIT 40') or error(db_error()); |
|
|
|
$args['top'] = $query->fetchAll(PDO::FETCH_ASSOC); |
|
|
|
|
|
|
|
$query = query('SELECT * FROM `antispam` ' . ($where ? "WHERE $where" : '') . ' ORDER BY `created` DESC LIMIT 20') or error(db_error()); |
|
|
|
$args['recent'] = $query->fetchAll(PDO::FETCH_ASSOC); |
|
|
|
|
|
|
|
mod_page(_('Debug: Anti-spam'), 'mod/debug/antispam.html', $args); |
|
|
|
} |
|
|
|
|
|
|
|
function mod_debug_recent_posts() { |
|
|
|
global $pdo, $config; |
|
|
|
|
|
|
|
$limit = 150; |
|
|
|
|
|
|
|
$boards = listBoards(); |
|
|
|
|
|
|
|
// Manually build an SQL query |
|
|
|
$query = 'SELECT * FROM ('; |
|
|
|
foreach ($boards as $board) { |
|
|
|
$query .= sprintf('SELECT *, %s AS `board` FROM `posts_%s` UNION ALL ', $pdo->quote($board['uri']), $board['uri']); |
|
|
|
} |
|
|
|
// Remove the last "UNION ALL" seperator and complete the query |
|
|
|
$query = preg_replace('/UNION ALL $/', ') AS `all_posts` ORDER BY `time` DESC LIMIT ' . $limit, $query); |
|
|
|
$query = query($query) or error(db_error()); |
|
|
|
$posts = $query->fetchAll(PDO::FETCH_ASSOC); |
|
|
|
|
|
|
|
foreach ($posts as &$post) { |
|
|
|
$post['snippet'] = pm_snippet($post['body']); |
|
|
|
} |
|
|
|
|
|
|
|
mod_page(_('Debug: Recent posts'), 'mod/debug/recent_posts.html', array('posts' => $posts)); |
|
|
|
} |
|
|
|
|