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 = " - - - - - ".make_form("log/view", "GET")." - - - - - - - - - - - \n"; - reset($events); // rewind to first element in array. - - foreach ($events as $event) { - $c = $this->pri_to_col($event['priority']); - $table .= ""; - $table .= ""; - $table .= ""; - if ($event['username'] == "Anonymous") { - $table .= ""; - } else { - $table .= ""; - } - $table .= ""; - $table .= "\n"; - } - $table .= "
TimeModuleUserMessage
-
- -
".str_replace(" ", " ", substr($event['date_sent'], 0, 19))."".$event['section']."".$event['address']."". - "".html_escape($event['username'])."". - "".$this->scan_entities(html_escape($event['message']))."
"; - global $page; $page->set_title("Event Log"); $page->set_heading("Event Log"); $page->add_block(new NavBlock()); - $page->add_block(new Block("Events", $table)); - $this->display_paginator($page, "log/view", $this->get_args(), $page_num, $page_total); - } - - protected function get_args() - { - $args = ""; - // Check if each arg is actually empty and skip it if so - if (strlen($this->ueie("time-start"))) { - $args .= $this->ueie("time-start")."&"; - } - if (strlen($this->ueie("time-end"))) { - $args .= $this->ueie("time-end")."&"; - } - if (strlen($this->ueie("module"))) { - $args .= $this->ueie("module")."&"; - } - if (strlen($this->ueie("user"))) { - $args .= $this->ueie("user")."&"; - } - if (strlen($this->ueie("message"))) { - $args .= $this->ueie("message")."&"; - } - if (strlen($this->ueie("priority"))) { - $args .= $this->ueie("priority"); - } - // If there are no args at all, set $args to null to prevent an unnecessary ? at the end of the paginator url - if (strlen($args) == 0) { - $args = null; - } - return $args; - } - - protected function pri_to_col($pri) - { - switch ($pri) { - case SCORE_LOG_DEBUG: return "#999"; - case SCORE_LOG_INFO: return "#000"; - case SCORE_LOG_WARNING: return "#800"; - case SCORE_LOG_ERROR: return "#C00"; - case SCORE_LOG_CRITICAL: return "#F00"; - default: return ""; - } - } - - protected function scan_entities($line) - { - $line = preg_replace_callback("/Image #(\d+)/s", [$this, "link_image"], $line); - return $line; - } - - protected function link_image($id) - { - $iid = int_escape($id[1]); - return "Image #$iid"; + $page->add_block(new Block("Events", $table . $paginator)); } } diff --git a/ext/not_a_tag/main.php b/ext/not_a_tag/main.php index 4a0d56d4..6720d8fe 100644 --- a/ext/not_a_tag/main.php +++ b/ext/not_a_tag/main.php @@ -122,7 +122,7 @@ class NotATag extends Extension $t = new NotATagTable($database->raw_db()); $t->token = $user->get_auth_token(); $t->inputs = $_GET; - $this->theme->display_bans($page, $t->table($t->query()), $t->paginator()); + $this->theme->display_untags($page, $t->table($t->query()), $t->paginator()); } } } diff --git a/ext/user/main.php b/ext/user/main.php index 1e7241f3..e690d148 100644 --- a/ext/user/main.php +++ b/ext/user/main.php @@ -190,7 +190,9 @@ class UserPage extends Extension } $event->add_stats("Joined: $h_join_date", 10); - $event->add_stats("Current IP: {$_SERVER['REMOTE_ADDR']}", 80); + if($user->name == $event->display_user->name) { + $event->add_stats("Current IP: {$_SERVER['REMOTE_ADDR']}", 80); + } $event->add_stats("Class: $h_class", 90); $av = $event->display_user->get_avatar_html();