From 4a6e12bf1fc7837699f780674c33cba5f2b1223c Mon Sep 17 00:00:00 2001 From: Jonas Kohl Date: Thu, 19 Sep 2024 16:32:18 +0200 Subject: Add log messages --- src/application/messages/de.msg | 9 + src/application/mystic/forum/Database.php | 9 +- .../mystic/forum/orm/TopicLogMessage.php | 23 +++ src/application/views/view_topiclog.php | 67 ++++++++ src/index.php | 186 +++++++++++++-------- 5 files changed, 220 insertions(+), 74 deletions(-) create mode 100644 src/application/mystic/forum/orm/TopicLogMessage.php create mode 100644 src/application/views/view_topiclog.php diff --git a/src/application/messages/de.msg b/src/application/messages/de.msg index d1b2389..46b48b3 100644 --- a/src/application/messages/de.msg +++ b/src/application/messages/de.msg @@ -464,3 +464,12 @@ metadata({ : "Unlock topic" = "Thema entsperren" + +: "%user% locked this topic" += "%user% hat dieses Thema gesperrt" + +: "%user% unlocked this topic" += "%user% hat dieses Thema entsperrt" + +: "%user% changed the title of this topic from %old_title% to %new_title%" += "%user% hat den Titel dieses Themas von %old_title% zu %new_title% geƤndert" diff --git a/src/application/mystic/forum/Database.php b/src/application/mystic/forum/Database.php index 8ebc36b..7a417be 100644 --- a/src/application/mystic/forum/Database.php +++ b/src/application/mystic/forum/Database.php @@ -142,6 +142,7 @@ class Database { return "text"; case "object": case "array": + return "jsonb"; case "iterable": case "callable": case "mixed": @@ -241,8 +242,10 @@ class Database { return strval($value); elseif (is_a($value, \DateTimeInterface::class)) return $value->format("c"); + elseif (is_array($value) || is_object($value)) + return json_encode($value, JSON_UNESCAPED_SLASHES); else - throw new \RuntimeException("Don't know how to stringify " . is_object($value) ? get_class($value) : gettype($value)); + throw new \RuntimeException("Don't know how to stringify " . ((is_object($value) && !is_array($value)) ? get_class($value) : gettype($value))); } private static function assignValue(Entity &$entity, array $colProps, ?string $value): void { @@ -285,7 +288,11 @@ class Database { } break; case "object": + $typedValue = json_decode($value); + break; case "array": + $typedValue = json_decode($value, true); + break; case "iterable": case "callable": case "mixed": diff --git a/src/application/mystic/forum/orm/TopicLogMessage.php b/src/application/mystic/forum/orm/TopicLogMessage.php new file mode 100644 index 0000000..1caa3c5 --- /dev/null +++ b/src/application/mystic/forum/orm/TopicLogMessage.php @@ -0,0 +1,23 @@ +id)) . '">' . htmlentities($postAuthor->displayName) . ''; +} + +?> +