57 lines
2 KiB
PHP
57 lines
2 KiB
PHP
<?php
|
|
namespace Misuzu;
|
|
|
|
$indexMode = !empty($_GET['m']) && is_string($_GET['m']) ? (string)$_GET['m'] : '';
|
|
$forumId = !empty($_GET['f']) && is_string($_GET['f']) ? (int)$_GET['f'] : 0;
|
|
|
|
$currentUser = $msz->getActiveUser();
|
|
$currentUserId = $currentUser === null ? '0' : $currentUser->getId();
|
|
|
|
switch($indexMode) {
|
|
case 'mark':
|
|
if(!$msz->isLoggedIn()) {
|
|
echo render_error(403);
|
|
break;
|
|
}
|
|
|
|
if($_SERVER['REQUEST_METHOD'] === 'POST' && CSRF::validateRequest()) {
|
|
forum_mark_read($forumId, (int)$msz->getAuthInfo()->getUserId());
|
|
$redirect = url($forumId ? 'forum-category' : 'forum-index', ['forum' => $forumId]);
|
|
redirect($redirect);
|
|
break;
|
|
}
|
|
|
|
Template::render('confirm', [
|
|
'title' => 'Mark forum as read',
|
|
'message' => 'Are you sure you want to mark ' . ($forumId === 0 ? 'the entire' : 'this') . ' forum as read?',
|
|
'return' => url($forumId ? 'forum-category' : 'forum-index', ['forum' => $forumId]),
|
|
'params' => [
|
|
'forum' => $forumId,
|
|
]
|
|
]);
|
|
break;
|
|
|
|
default:
|
|
$categories = forum_get_root_categories($currentUserId);
|
|
$blankForum = count($categories) < 1;
|
|
|
|
foreach($categories as $key => $category) {
|
|
$categories[$key]['forum_subforums'] = forum_get_children($category['forum_id'], $currentUserId);
|
|
|
|
foreach($categories[$key]['forum_subforums'] as $skey => $sub) {
|
|
if(!forum_may_have_children($sub['forum_type'])) {
|
|
continue;
|
|
}
|
|
|
|
$categories[$key]['forum_subforums'][$skey]['forum_subforums']
|
|
= forum_get_children($sub['forum_id'], $currentUserId);
|
|
}
|
|
}
|
|
|
|
Template::render('forum.index', [
|
|
'forum_categories' => $categories,
|
|
'forum_empty' => $blankForum,
|
|
'forum_show_mark_as_read' => $currentUser !== null,
|
|
]);
|
|
break;
|
|
}
|