diff --git a/contrib/event_log/main.php b/contrib/event_log/main.php index 9c44d7c6..cd989b0b 100644 --- a/contrib/event_log/main.php +++ b/contrib/event_log/main.php @@ -19,13 +19,25 @@ class EventLog extends Extension { if(is_a($event, 'PageRequestEvent') && $event->page_name == "event_log") { global $user; + global $database; if($user->is_admin()) { - global $database; + if(isset($_POST['action'])) { + switch($_POST['action']) { + case 'clear': + $database->execute("DELETE FROM event_log"); + break; + } + } + + $sort = "date"; + if(isset($_GET['sort']) && in_array($_GET['sort'], array("name", "date", "ip", "event"))) { + $sort = $_GET['sort']; + } $events = $database->db->GetAll(" SELECT event_log.*,users.name FROM event_log JOIN users ON event_log.owner_id = users.id WHERE date > date_sub(now(), interval 1 day) - ORDER BY date DESC + ORDER BY $sort DESC "); $this->theme->display_page($event->page, $events); } diff --git a/contrib/event_log/theme.php b/contrib/event_log/theme.php index 51be1fa0..c1f5fe8b 100644 --- a/contrib/event_log/theme.php +++ b/contrib/event_log/theme.php @@ -6,32 +6,58 @@ class EventLogTheme extends Themelet { $page->set_heading("Event Log"); $page->add_block(new NavBlock()); + $this->display_table($page, $events); + $this->display_controls($page); + } + + protected function display_table($page, $events) { $table = "
ID | User | IP | Date | Event | Entry |
---|---|---|---|---|---|
User | +IP | +Entry | +|||
Date | +Event | +||||
{$event['id']} | {$event['name']} | {$event['owner_ip']} | -{$event['date']} | +{$event['entry']} | +|
{$nobrdate} | {$event['event']} | -{$event['entry']} |