= htmlspecialchars((string)$t['title'], ENT_QUOTES) ?>
= nl2br(htmlspecialchars($preview, ENT_QUOTES)) ?>= mb_strlen((string)$t['body']) > 220 ? '…' : '' ?>
pdo();
$userId = $_SESSION['user_id'] ?? null;
$error = '';
$info = '';
$search = trim((string)($_GET['q'] ?? ''));
$boardSlug = trim((string)($_GET['board'] ?? ''));
$communityCfg = require __DIR__ . '/../../../config/community.php';
$community = $pdo ? new \App\Community($pdo, $communityCfg) : null;
$access = $pdo ? new \App\CommunityAccess($pdo, $communityCfg) : null;
$stats = $community ? $community->getStats() : ['threads' => 0, 'posts' => 0, 'members' => 0];
$forumCategories = $community ? $community->listForumCategories() : [];
$selectedBoard = ($community && $boardSlug !== '') ? $community->getBoardBySlug($boardSlug) : null;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $community && $access) {
$action = (string)($_POST['action'] ?? '');
try {
if ($action === 'thread_create') {
if (!$userId) {
throw new \RuntimeException('Bitte einloggen, um Themen zu erstellen.');
}
if (!$access->canCreateThread((int)$userId)) {
$state = $access->getRestrictionState((int)$userId);
throw new \RuntimeException($state['reason'] ?: 'Du darfst aktuell keine Themen erstellen.');
}
$community->createThreadInBoard((int)$userId, (string)($_POST['board_slug'] ?? ''), (string)($_POST['title'] ?? ''), (string)($_POST['body'] ?? ''));
redirect('/community' . ($boardSlug !== '' ? '?board=' . rawurlencode($boardSlug) : ''));
}
} catch (\Throwable $e) {
$error = $e->getMessage();
}
}
$threads = $community
? ($search !== '' ? $community->searchThreads($search, 50, $boardSlug !== '' ? $boardSlug : null) : $community->listThreads(50, $boardSlug !== '' ? $boardSlug : null))
: [];
?>
Fragen stellen, Erfahrungen teilen, Antworten finden und gemeinsam weiterdenken. = htmlspecialchars((string)$selectedBoard['description'], ENT_QUOTES) ?> = nl2br(htmlspecialchars($preview, ENT_QUOTES)) ?>= mb_strlen((string)$t['body']) > 220 ? '…' : '' ?> = htmlspecialchars((string)$board['description'], ENT_QUOTES) ?> Hier siehst du die zuletzt erstellten oder zuletzt aktiven Themen aus der Community. = nl2br(htmlspecialchars($preview, ENT_QUOTES)) ?>= mb_strlen((string)$t['body']) > 220 ? '…' : '' ?>Community
= htmlspecialchars($selectedBoard['title'], ENT_QUOTES) ?>
= htmlspecialchars((string)$t['title'], ENT_QUOTES) ?>
= htmlspecialchars((string)$board['title'], ENT_QUOTES) ?>
Neueste Themen
= htmlspecialchars((string)$t['title'], ENT_QUOTES) ?>