component($loader->loadedComId, 'view', $_GET['id']) !== TRUE) { if (isset($_GET['id'])) { $this->displayTopic(); } } else { $com_forum_html->permissions_error('view this topic'); } break; case 'reply': if ($permissions->component($loader->loadedComId, 'reply', $_GET['id']) !== TRUE) { if (isset($_GET['id'])) { $this->replyForm(); } } else { $com_forum_html->permissions_error('reply to this topic'); } break; case 'replied': if ($permissions->component($loader->loadedComId, 'replied', $_GET['id']) !== TRUE) { if (isset($_POST['body']) && isset($_GET['id'])) { $this->replied(); } } else { $com_forum_html->permissions_error('reply to this topic'); } break; case 'edit': if ($permissions->component($loader->loadedComId, 'edit', $_GET['id']) !== TRUE) { if (isset($_GET['id']) && isset($_GET['pid'])) { $this->editForm(); } } else { $com_forum_html->permissions_error('edit this topic'); } break; case 'edited': if ($permissions->component($loader->loadedComId, 'edited', $_GET['id']) !== TRUE) { if (isset($_GET['id']) && isset($_GET['pid']) && isset($_POST['body'])) { $this->edited(); } } else { $com_forum_html->permissions_error('edit this topic'); } break; default: die('ERROR Invalid function'); break; } } function displayTopic() { global $sql; $com_topic_html = new com_topic_html; $com_topic_html->topic_header($this->topicNameFromId($_GET['id'])); $sql->query('SELECT users.id AS users_id, users.name AS users_name, users.`group` AS users_group, groups.id AS groups_id, groups.name AS groups_name, users.id AS users_id, users.name AS users_name, users.`group` AS users_group, posts.id AS posts_id, posts.user_id AS posts_user_id, posts.posted AS posts_posted, posts.body AS posts_body, groups.id AS groups_id, groups.name AS groups_name, posts.topic_id AS posts_topic_id FROM ' . _PREFIX_ . '_users AS users Inner Join ' . _PREFIX_ . '_groups AS groups ON users.`group` = groups.id Inner Join ' . _PREFIX_ . '_posts AS posts ON users.id = posts.user_id WHERE posts.topic_id = ' . $sql->safe($_GET['id'])); foreach($sql->rowarray as $row) { $com_topic_html->topic_main($row['users_name'], $row['user_id'], $row['posts_posted'], $row['posts_body'], $row['groups_gmod'], $row['groups_name'], $_GET['id'], $row['posts_id']); } $com_topic_html->topic_footer($_GET['id']); } function replyForm() { global $sql; $com_topic_html = new com_topic_html; $com_topic_html->topic_reply($_GET['id']); } function replied() { global $sql, $userAuthentication; $sql->query('INSERT INTO `' . _PREFIX_ . '_posts` ( `id`, `topic_id`, `user_id`, `posted`, `body`) VALUES (NULL, ' . $sql->safe($_GET['id']) . ', ' . $sql->safe($userAuthentication->userId) . ', CURRENT_TIMESTAMP, ' . $sql->safe(htmlentities($_POST['body'])) . ')'); header('Location: index.php?com=topic&action=view&id=' . intval($_GET['id'])); } function editForm() { global $sql; $com_topic_html = new com_topic_html; $com_topic_html->topic_edit(); } function edited() { global $sql; $sql->query("UPDATE `" . _PREFIX_ . "_posts` SET `body` = " . $sql->safe($_POST['body']) . " WHERE `" . _PREFIX_ . "_posts`.`id` = " . $sql->safe($_GET['postid']) . " LIMIT 1"); header('Location: index.php?com=topic&action=view&id=' . intval($_GET['id'])); } function topicNameFromId($id) { global $sql; $sql->query('SELECT * FROM `' . _PREFIX_ . '_topics` WHERE ' . _PREFIX_ . '_topics.id = ' . $sql->safe($id)); return $sql->row['title']; } function userinfo($userid) { global $sql; $sql->query('SELECT * FROM `' . _PREFIX_ . '_users` WHERE `id` = ' . $sql->safe($userid) . ' LIMIT 0,1'); $groupid = $sql->row['group']; $sql->query('SELECT * FROM `' . _PREFIX_ . '_groups` WHERE `id` = ' . $sql->safe($groupid) . ' LIMIT 0, 1'); return "Group: " . $sql->row['name']; } private function navArrow($extra = '') { global $sql; //For Nav-Arrow $sql->query('SELECT forum.id AS forum_id, forum.name AS forum_name, forum.parent AS forum_parent, parent.id AS parent_id, parent.name AS parent_name, settings.name AS settings_name, settings.value AS settings_value FROM ' . _PREFIX_ . '_forums AS forum , ' . _PREFIX_ . '_settings AS settings , ' . _PREFIX_ . '_forums AS parent WHERE settings.name = \'board_name\' AND forum.parent = parent.id AND forum.id = ' . $sql->safe($_GET['id'])); $mod_navArrow = array(); $mod_navArrow[0] = $sql->row['settings_value']; $mod_navArrow[1] = 'index.php'; $mod_navArrow[2] = $sql->row['parent_name']; $mod_navArrow[3] = 'index.php?com=forum&id=' . $sql->row['parent_id'] . '&action=view'; $mod_navArrow[4] = $sql->row['forum_name']; $mod_navArrow[5] = 'index.php?com=forum&id=' . $sql->row['forum_id'] . '&action=view'; if (isset($extra)) { $mod_navArrow[6] = $extra; } $this->mod_navArrow = $mod_navArrow; } } ?>