All pastes #759674 Raw Edit

Stuff

public text v1 · immutable
·published 2007-11-03 12:19 UTC
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&amp;id=' . $sql->row['parent_id'] . '&amp;action=view';
		$mod_navArrow[4] = $sql->row['forum_name'];
		$mod_navArrow[5] = 'index.php?com=forum&amp;id=' . $sql->row['forum_id'] . '&amp;action=view';
			if (isset($extra)) {
				$mod_navArrow[6] = $extra;
			}
		$this->mod_navArrow = $mod_navArrow;
	}

}
?>