filtering

git-svn-id: file:///home/shish/svn/shimmie2/trunk@473 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
shish 2007-08-24 13:54:51 +00:00
parent e98e4e31d5
commit d90004469f
2 changed files with 27 additions and 10 deletions

View File

@ -29,20 +29,30 @@ class EventLog extends Extension {
} }
} }
$columns = array("name", "date", "owner_ip", "event");
$orders = array("ASC", "DESC");
$sort = "date"; $sort = "date";
if(isset($_GET['sort']) && in_array($_GET['sort'], array("name", "date", "ip", "event"))) { if(isset($_GET['sort']) && in_array($_GET['sort'], $columns)) {
$sort = $_GET['sort']; $sort = $_GET['sort'];
} }
$order = "DESC"; $order = "DESC";
if(isset($_GET['order']) && in_array($_GET['order'], array("ASC", "DESC"))) { if(isset($_GET['order']) && in_array($_GET['order'], $orders)) {
$order = $_GET['order']; $order = $_GET['order'];
} }
$filter_sql = "";
if(isset($_GET['filter']) && isset($_GET['where']) && in_array($_GET['filter'], $columns)) {
$filter = $_GET['filter'];
$where = $database->db->Quote($_GET['where']);
$filter_sql = "WHERE $filter = $where";
}
$events = $database->db->GetAll(" $events = $database->db->GetAll("
SELECT event_log.*,users.name FROM event_log SELECT event_log.*,users.name FROM event_log
JOIN users ON event_log.owner_id = users.id JOIN users ON event_log.owner_id = users.id
WHERE date > date_sub(now(), interval 1 day) $filter_sql
ORDER BY $sort $order ORDER BY $sort $order
"); ");
$this->theme->display_page($event->page, $events); $this->theme->display_page($event->page, $events);

View File

@ -28,8 +28,8 @@ class EventLogTheme extends Themelet {
<a href='".make_link("event_log", "sort=name&order=DESC")."'>-</a> <a href='".make_link("event_log", "sort=name&order=DESC")."'>-</a>
</th> </th>
<th style='width: 10em;'>IP <th style='width: 10em;'>IP
<a href='".make_link("event_log", "sort=ip&order=ASC")."'>+</a> <a href='".make_link("event_log", "sort=owner_ip&order=ASC")."'>+</a>
<a href='".make_link("event_log", "sort=ip&order=DESC")."'>-</a> <a href='".make_link("event_log", "sort=owner_ip&order=DESC")."'>-</a>
</th> </th>
<th rowspan='2' class='entry'>Entry</th> <th rowspan='2' class='entry'>Entry</th>
</tr> </tr>
@ -45,16 +45,23 @@ class EventLogTheme extends Themelet {
</tr> </tr>
"; ";
foreach($events as $event) { foreach($events as $event) {
$nobrdate = str_replace(" ", "&nbsp;", $event['date']);
$table .= " $table .= "
<tr> <tr>
<td>{$event['name']}</td> <td>
<td>{$event['owner_ip']}</td> <a href='".make_link("event_log", "filter=name&where={$event['name']}")."'>{$event['name']}</a>
</td>
<td>
<a href='".make_link("event_log", "filter=owner_ip&where={$event['owner_ip']}")."'>{$event['owner_ip']}</a>
</td>
<td rowspan='2' class='entry'>{$event['entry']}</td> <td rowspan='2' class='entry'>{$event['entry']}</td>
</tr> </tr>
<tr> <tr>
<td>{$nobrdate}</td> <td>
<td>{$event['event']}</td> {$event['date']}
</td>
<td>
<a href='".make_link("event_log", "filter=event&where={$event['event']}")."'>{$event['event']}</a>
</td>
</tr> </tr>
"; ";
} }