diff --git a/composer.lock b/composer.lock index e75eedc1..d0abeebe 100644 --- a/composer.lock +++ b/composer.lock @@ -388,12 +388,12 @@ "source": { "type": "git", "url": "https://github.com/shish/microcrud.git", - "reference": "2a7ae6efe5b2c8aa9d68436cfa310cea5ad0e653" + "reference": "685e01a22427a83fc5b13cf09c16b1d72e9755f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/shish/microcrud/zipball/2a7ae6efe5b2c8aa9d68436cfa310cea5ad0e653", - "reference": "2a7ae6efe5b2c8aa9d68436cfa310cea5ad0e653", + "url": "https://api.github.com/repos/shish/microcrud/zipball/685e01a22427a83fc5b13cf09c16b1d72e9755f0", + "reference": "685e01a22427a83fc5b13cf09c16b1d72e9755f0", "shasum": "" }, "require": { @@ -429,7 +429,11 @@ "crud", "generator" ], +<<<<<<< HEAD "time": "2019-11-29T21:15:17+00:00" +======= + "time": "2019-11-29T10:55:02+00:00" +>>>>>>> e926b15d5ffeb6f7c0510acacaaa846294212f5c }, { "name": "shish/microhtml", diff --git a/ext/log_db/main.php b/ext/log_db/main.php index a8d5644a..2c652335 100644 --- a/ext/log_db/main.php +++ b/ext/log_db/main.php @@ -1,5 +1,74 @@ make_link("user/{$row['username']}"), "title"=>$row['address']], $row['username']); + } + } +} + +class MessageColumn extends TextColumn { + public function display($row) + { + $c = "#000"; + switch ($row['priority']) { + case SCORE_LOG_DEBUG: $c = "#999"; break; + case SCORE_LOG_INFO: $c = "#000"; break; + case SCORE_LOG_WARNING: $c = "#800"; break; + case SCORE_LOG_ERROR: $c = "#C00"; break; + case SCORE_LOG_CRITICAL: $c = "#F00"; break; + } + return SPAN(["style"=>"color: $c"], $this->scan_entities($row[$this->name])); + } + + protected function scan_entities($line) + { + return preg_replace_callback("/Image #(\d+)/s", [$this, "link_image"], $line); + } + + protected function link_image($id) + { + $iid = int_escape($id[1]); + return "Image #$iid"; + } +} + +class LogTable extends Table +{ + public function __construct(\FFSPHP\PDO $db) + { + parent::__construct($db); + $this->table = "score_log"; + $this->base_query = "SELECT * FROM score_log"; + $this->size = 100; + $this->limit = 1000000; + $this->columns = [ + new DateTimeColumn("date_sent", "Time"), + new TextColumn("section", "Module"), + new ActorColumn("username_or_address", "User"), + new MessageColumn("message", "Message") + ]; + $this->order_by = ["date_sent DESC"]; + $this->table_attrs = ["class" => "zebra"]; + } +} + class LogDatabase extends Extension { public function onInitExt(InitExtEvent $event) diff --git a/ext/log_db/theme.php b/ext/log_db/theme.php index 94d656b8..ee02dc86 100644 --- a/ext/log_db/theme.php +++ b/ext/log_db/theme.php @@ -2,133 +2,12 @@ class LogDatabaseTheme extends Themelet { - protected function heie($var) + public function display_events($table, $paginator) { - if (isset($_GET[$var])) { - return html_escape($_GET[$var]); - } else { - return ""; - } - } - - protected function ueie($var) - { - if (isset($_GET[$var])) { - return $var."=".url_escape($_GET[$var]); - } else { - return ""; - } - } - - public function display_events($events, $page_num, $page_total) - { - $table = " - -
Time | Module | User | Message | |||
---|---|---|---|---|---|---|
- |
- - | - | - | - - | -- | |
".str_replace(" ", " ", substr($event['date_sent'], 0, 19))." | "; - $table .= "".$event['section']." | "; - if ($event['username'] == "Anonymous") { - $table .= "".$event['address']." | "; - } else { - $table .= "". - "".html_escape($event['username'])."". - " | "; - } - $table .= "".$this->scan_entities(html_escape($event['message']))." | "; - $table .= "