rendered paste body<?php
if (!eregi("index.php", $_SERVER['SCRIPT_NAME']) OR !defined("F_SECURE")) {
die ("You cannot directly access this file");
}
//Include HTML display class :)
include('topic.html.php');
class com_topic {
function __construct() {
global $permissions, $loader;
$com_topic_html = new com_topic_html;
switch (strtolower(@$_GET['action'])) {
case 'view':
if ($permissions->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;
}
}
?>