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 = " - + + + + + + + + + "; foreach($events as $event) { + $nobrdate = str_replace(" ", " ", $event['date']); $table .= " - - + + + + - "; } $table .= "
IDUserIPDateEventEntry
UserIPEntry
DateEvent
{$event['id']} {$event['name']} {$event['owner_ip']}{$event['date']}{$event['entry']}
{$nobrdate} {$event['event']}{$event['entry']}
"; $page->add_block(new Block("Log Contents", $table)); } + + protected function display_controls($page) { + $html = " +
+ + +
+ "; + $page->add_block(new Block(null, $html, "main", 60)); + } } ?>