summaryrefslogtreecommitdiff
path: root/src/application/actions/viewtopic/get.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/application/actions/viewtopic/get.php')
-rw-r--r--src/application/actions/viewtopic/get.php37
1 files changed, 13 insertions, 24 deletions
diff --git a/src/application/actions/viewtopic/get.php b/src/application/actions/viewtopic/get.php
index 45dc824..636d791 100644
--- a/src/application/actions/viewtopic/get.php
+++ b/src/application/actions/viewtopic/get.php
@@ -6,7 +6,6 @@ use mystic\forum\orm\Attachment;
use mystic\forum\orm\Post;
use mystic\forum\orm\TopicLogMessage;
use mystic\forum\orm\User;
-use mystic\forum\utils\RequestUtils;
$posts = $db->fetchCustom(Post::class, 'WHERE topic_id = $1 ORDER BY post_date', [ $topicId ]);
/** @var TopicLogMessage[] $logMessages */
@@ -25,13 +24,7 @@ if ($topic->createdBy !== null) {
$allItems = [...$posts, ...$logMessages];
usort($allItems, fn(Post|TopicLogMessage $a, Post|TopicLogMessage $b): int => $a->postDate <=> $b->postDate);
-_view("template_start", ["_title" => $topic->title]);
-_view("template_navigation_start");
-_view("template_navigation", ["user" => RequestUtils::getAuthorizedUser($db)]);
-_view("template_navigation_end");
-_view("view_topic_start", ["topic" => $topic, "topicAuthor" => $topicAuthor]);
-
-foreach ($allItems as $item) {
+$allItems = array_map(function(Post|TopicLogMessage $item) use (&$db, &$topicAuthor, &$topic): array {
/** @var ?User $postAuthor */
$postAuthor = null;
if ($item->authorId !== null && !isset($userCache[$item->authorId])) {
@@ -46,31 +39,27 @@ foreach ($allItems as $item) {
if ($item instanceof Post) {
$attachments = $db->fetchCustom(Attachment::class, 'WHERE post_id = $1', [ $item->id ]);
- _view("view_post", [
+ return [
+ "type" => "post",
"post" => $item,
"postAuthor" => $postAuthor,
"topicAuthor" => $topicAuthor,
"attachments" => $attachments,
"topic" => $topic,
- ]);
+ ];
} else {
- _view("view_topiclog", [
+ return [
+ "type" => "logMessage",
"logMessage" => $item,
"postAuthor" => $postAuthor,
"topicAuthor" => $topicAuthor,
"topic" => $topic,
- ]);
+ ];
}
-}
-
-_view("view_topic_end");
-
-if ($topic->isLocked) {
- _view("view_topic_locked");
-} elseif ($currentUser) {
- _view("form_addpost");
-} else {
- _view("view_logintoreply");
-}
+}, $allItems);
-_view("template_end", [...getThemeAndLangInfo()]);
+render("view_topic.twig", [
+ "topic" => $topic,
+ "topicAuthor" => $topicAuthor,
+ "allItems" => &$allItems,
+]);