<?php if (!$page->users->isLoggedIn()) { $page->show403(); } $id = $_GET["id"] + 0; $forum = new Forum(); if ($page->isPostBack()) { $forum->add($id, $page->users->currentUserId(), "", $_POST["addReply"]); header("Location:" . WWW_TOP . "/forumpost/" . $id . "#last"); die; } $results = $forum->getPosts($id); if (count($results) == 0) { header("Location:" . WWW_TOP . "/forum"); die; } $page->meta_title = "Forum Post"; $page->meta_keywords = "view,forum,post,thread"; $page->meta_description = "View forum post"; $page->smarty->assign('results', $results); $page->smarty->assign('privateprofiles', $page->settings->getSetting('privateprofiles') == 1 ? true : false); $page->content = $page->smarty->fetch('forumpost.tpl'); $page->render();
httpResponse($forum->getTopic($params[3])); break; case validateRoute('DELETE', 'forums/\\d+/topics/\\d+'): $forum = new Forum($db, $user); $user->updateLastForumAccess(); httpResponse($forum->deleteTopic($params[1], $params[3])); break; case validateRoute('PATCH', 'forums/\\d+/topics/\\d+'): $forum = new Forum($db, $user); $user->updateLastForumAccess(); httpResponse($forum->updateTopic($params[3], $postdata)); break; case validateRoute('GET', 'forums/\\d+/topics/\\d+/posts'): $forum = new Forum($db, $user); $user->updateLastForumAccess(); list($result, $totalCount) = $forum->getPosts((int) $params[3], (int) $_GET["limit"] ?: 10, (int) $_GET["index"] ?: 0); httpResponse($result, $totalCount); break; case validateRoute('POST', 'forums/\\d+/topics'): $forum = new Forum($db, $user); $user->updateLastForumAccess(); $topicId = $forum->addTopic((int) $params[1], $postdata["subject"], $postdata["sub"] ?: '', $postdata["body"]); httpResponse(array("topicId" => $topicId)); break; case validateRoute('POST', 'forums/\\d+/topics/\\d+/posts'): $mailbox = new Mailbox($db, $user); $forum = new Forum($db, $user, $mailbox); $user->updateLastForumAccess(); $forum->addPost((int) $params[3], $postdata); httpResponse($result, $totalCount); break;
} else { Redirect::to('/forum/view_topic/?tid=' . $tid . '#post-' . $_GET['pid']); die; } } else { Redirect::to('/forum/error/?error=not_exist'); die; } } // Get the topic information $topic = $queries->getWhere("topics", array("id", "=", $tid)); $topic = $topic[0]; // Assign author + title to Smarty variables $smarty->assign(array('TOPIC_TITLE' => htmlspecialchars($topic->topic_title), 'TOPIC_AUTHOR_USERNAME' => htmlspecialchars($user->idToName($topic->topic_creator)), 'TOPIC_AUTHOR_MCNAME' => htmlspecialchars($user->idToMCName($topic->topic_creator)))); // Get all posts in the topic $posts = $forum->getPosts($tid); // Can the user post a reply in this topic? $can_reply = $forum->canPostReply($topic->forum_id, $user->data()->group_id); // Quick reply if (Input::exists()) { if (!$user->isLoggedIn() && !$can_reply) { Redirect::to('/forum'); die; } if (Token::check(Input::get('token'))) { $validate = new Validate(); $validation = $validate->check($_POST, array('content' => array('required' => true, 'min' => 2, 'max' => 20480))); if ($validation->passed()) { try { $queries->create("posts", array('forum_id' => $topic->forum_id, 'topic_id' => $tid, 'post_creator' => $user->data()->id, 'post_content' => htmlspecialchars(Input::get('content')), 'post_date' => date('Y-m-d H:i:s'))); // Get last post ID