diff options
| author | Savetheinternet <savetheinternet@n0v4.com> | 2011-03-02 17:51:29 +1100 |
|---|---|---|
| committer | Savetheinternet <savetheinternet@n0v4.com> | 2011-03-02 17:51:29 +1100 |
| commit | 9703adb0e76ed6704feabd1e09b1be1673130d0a (patch) | |
| tree | cecec934b4d4fd8bb847b7e1bf7c2611d0f8604c /mod.php | |
| parent | 11d358e51000de5ce3bfdae75ff5b7082298d684 (diff) | |
Mod log viewer
Diffstat (limited to 'mod.php')
| -rw-r--r-- | mod.php | 40 |
1 files changed, 38 insertions, 2 deletions
@@ -90,9 +90,12 @@ if($mod['type'] >= $config['mod']['view_banlist']) { $fieldset['Administration'] .= '<li><a href="?/bans">Ban list</a></li>'; } - if($mod['type'] >= $config['mod']['manageusers']) { + if($mod['type'] >= $config['mod']['manageusers']) { $fieldset['Administration'] .= '<li><a href="?/users">Manage users</a></li>'; } + if($mod['type'] >= $config['mod']['modlog']) { + $fieldset['Administration'] .= '<li><a href="?/log">Moderation log</a></li>'; + } if($mod['type'] >= $config['mod']['show_config']) { $fieldset['Administration'] .= '<li><a href="?/config">Show configuration</a></li>'; } @@ -112,7 +115,40 @@ //,'mod'=>true /* All 'mod' does, at this point, is put the "Return to dashboard" link in. */ ) ); + } elseif(preg_match('/^\/log$/', $query)) { + if($mod['type'] < $config['mod']['modlog']) error($config['error']['noaccess']); + + $body = '<table class="modlog"><tr><th>User</th><th>IP address</th><th>Ago</th><th>Action</th></tr>'; + + $query = prepare("SELECT `id`,`username`,`ip`,`time`,`text` FROM `modlogs` INNER JOIN `mods` ON `mod` = `id` ORDER BY `time` DESC LIMIT :limit"); + $query->bindValue(':limit', $config['mod']['modlog_page'], PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + while($log = $query->fetch()) { + $log['text'] = htmlentities($log['text']); + $log['text'] = preg_replace('/(\d+\.\d+\.\d+\.\d+)/', '<a href="?/IP/$1">$1</a>', $log['text']); + + + $body .= '<tr>' . + '<td class="minimal"><a href="?/users/' . $log['id'] . '">' . $log['username'] . '</a></td>' . + '<td class="minimal"><a href="?/IP/' . $log['ip'] . '">' . $log['ip'] . '</a></td>' . + '<td class="minimal">' . ago($log['time']) . '</td>' . + '<td>' . $log['text'] . '</td>' . + '</tr>'; + } + + $body .= '</table>'; + + echo Element('page.html', Array( + 'index'=>$config['root'], + 'title'=>'Moderation log', + 'body'=>$body, + 'mod'=>true + ) + ); } elseif(preg_match('/^\/users$/', $query)) { + if($mod['type'] < $config['mod']['manageusers']) error($config['error']['noaccess']); + $body = '<form action="" method="post"><table><tr><th>ID</th><th>Username</th><th>Type</th><th>Last action</th><th>…</th></tr>'; $query = query("SELECT *, (SELECT `time` FROM `modlogs` WHERE `mod` = `id` ORDER BY `time` DESC LIMIT 1) AS `last`, (SELECT `text` FROM `modlogs` WHERE `mod` = `id` ORDER BY `time` DESC LIMIT 1) AS `action` FROM `mods` ORDER BY `type` DESC,`id`") or error(db_error()); @@ -899,7 +935,7 @@ $ip = $post['ip']; // Record the action - modLog("Deleted all posts by IP address: #{$ip}"); + modLog("Deleted all posts by IP address: {$ip}"); $query = prepare(sprintf("SELECT `id` FROM `posts_%s` WHERE `ip` = :ip", $board['uri'])); $query->bindValue(':ip', $ip); |
