adfs
All checks were successful
Deploy / deploy (push) Successful in 47s

This commit is contained in:
2026-07-18 01:04:18 +02:00
parent e39a483aff
commit 57e197755e
4 changed files with 246 additions and 54 deletions

View File

@@ -9,6 +9,19 @@ final class Community
{
}
public function getStats(): array
{
$threads = (int)$this->pdo->query('SELECT COUNT(*) FROM forum_threads')->fetchColumn();
$posts = (int)$this->pdo->query('SELECT COUNT(*) FROM forum_posts')->fetchColumn();
$members = (int)$this->pdo->query('SELECT COUNT(*) FROM users WHERE status = "active"')->fetchColumn();
return [
'threads' => $threads,
'posts' => $posts,
'members' => $members,
];
}
public function createThread(int $userId, string $title, string $body): void
{
$stmt = $this->pdo->prepare('INSERT INTO forum_threads (user_id, title, body) VALUES (:uid, :title, :body)');
@@ -45,10 +58,27 @@ final class Community
}
$where = $conditions ? ('AND ' . implode(' AND ', $conditions)) : '';
$sql = "SELECT ft.id, ft.title, ft.body, ft.created_at,
$sql = "SELECT ft.id, ft.title, ft.body, ft.created_at, ft.updated_at,
u.id as uid, u.created_at as user_created,
p.display_name,
(SELECT COUNT(*) FROM forum_posts fp WHERE fp.thread_id = ft.id) AS answers,
COALESCE(
(SELECT MAX(fp.created_at) FROM forum_posts fp WHERE fp.thread_id = ft.id),
ft.created_at
) AS last_activity_at,
COALESCE(
(
SELECT p2.display_name
FROM forum_posts fp3
JOIN users u2 ON u2.id = fp3.user_id
LEFT JOIN user_profiles p2 ON p2.user_id = u2.id
WHERE fp3.thread_id = ft.id
ORDER BY fp3.created_at DESC
LIMIT 1
),
p.display_name,
'Mitglied'
) AS last_activity_by,
(SELECT COUNT(*) FROM forum_posts fp2 WHERE fp2.user_id = u.id) +
(SELECT COUNT(*) FROM forum_threads ft2 WHERE ft2.user_id = u.id) AS user_posts
FROM forum_threads ft