getInstance('database'); $template = $kraster->getInstance('template'); process_user_settings($kraster,$template); $priviliges = parser_user_priviliges($kraster,'threads'); if($priviliges !== true) { throw new exception(constant($priviliges)); } // ID definition of certain things $groupID = $kraster->getInstance('session')->read('group'); $groupID = $groupID === false ? 0 : $groupID; $uid = $kraster->getInstance('session')->read('uid'); $uid = $uid === false ? 0 : $uid; $page = $kraster->getInstance('httpData')->read('page'); $page = empty($page) ? 0 : $page; $id = $kraster->getInstance('httpData')->read('id'); $id = empty($id) ? 0 : $id; $group = $kraster->getInstance('groups'); $group->setGroupData($db->query('SELECT * FROM `groups` WHERE `id` = '.$groupID)->fetch()); $thread = $db->query('SELECT * FROM `threads` WHERE `id` = '.(int) $id)->fetch(); if(empty($thread) || !is_numeric($id)) { throw new exception(THREAD_DOSE_NOT_EXIST); } // This is abit of a waste of resources. // What it dose is that it checks the category then board group access requirements for the current thread. // Disabled by settings system.security level smaller then 2 if($kraster->getConfig('system.security') >= 2) { // Here we can use fetch because if a thread exists a board must exist for it. $board = $db->query('SELECT `groups`,`upperid` FROM `boards` WHERE `id` = '.(int) $thread[0]['boardid'])->fetch(); // Access denied for the board if(!(in_array($groupID, unserialize($board['groups'])) && strpos($board['groups'],'*') === false && $group->canView('all'))) { throw new exception(PERMISSION_DENIED); } $category = $db->query('SELECT `groups` FROM `categories` WHERE `position` = '.$board['upperid'])->fetch(); if(!(in_array($groupID, unserialize($category['groups'])) && strpos($category['groups'],'*') === false && $group->canView('all'))) { throw new exception(PERMISSION_DENIED); } } $canViewDeleted = $group->canView('deleted') == 1 && in_array($groupID,$board[0]['groups']) ? '' : ' AND `deleted` = \'n\''; $posts = $db->query('SELECT * FROM `posts` WHERE `threadid` = '.$id.$canViewDeleted.' ORDER BY `id` DESC')->fetchAll(); foreach($posts as $post) { $root = $template->xml->createElement('table'); setAttributes(array('width' => '440px','height' => 165,'border' => '1px solid #000','cellpadding' => 0,'cellspacing' => 0),$root); /* First row */ $tr = $template->xml->createElement('tr'); $td = $template->xml->createElement('td',array('width' => 74,'align' => 'left','valign' => 'top','bgcolor' => '#FFFF00')); $td->nodeValue = '#'.$post['id']; $tr->appendChild($td); $td = $template->xml->createElement('td',array('width' => 260,'height' => 21,'valign' => 'top','bgcolor' => '#FFFF00')); $td->nodeValue = $post['title']; $tr->appendChild($td); $td = $template->xml->createElement('td',array('width' => 98,'align' => 'right','valign' => 'top','bgcolor' => '#FFFF00')); $td->nodeValue = date('d-m-y H:i',$post['date']); $tr->appendChild($td); $root->appendChild($tr); /* Second row */ $user = $db->query('SELECT `id`,`name`,`avatar` FROM `users` WHERE `id` = '.(int) $post['uid'])->fetch(); $avatar = $user['avatar'] != NULL ? $user['name'].'.'.$user['avatar'] : 'bildsaknas.jpg'; $tr = $template->xml->createElement('tr'); $td = $template->xml->createElement('td',array('width' => 74,'align' => 'left','valign' => 'top')); $td->appendChild($template->html->img('./img/users/'.$avatar,$user['avatar'],false,'width:70px;')); $td->appendChild($template->xml->createElement('br')); $td->appendChild($template->html->createLink($user['name'],array('href' => 'profile.php?id='.$user['id']))); $tr->appendChild($td); $td = $template->xml->createElement('td',array('width' => 121,'colspan' => 2,'align' => 'left','valign' => 'top')); $td->appendChild($template->xml->inparse(BBParser::parse($post['message']))); $tr->appendChild($td); $root->appendChild($tr); $template->appendTree($root); $template->appendTree($template->xml->createElement('br')); } } catch(exception $e) { $error = $db->query('SELECT * FROM `errors` WHERE `id` = '.(int) $e->getMessage().' AND `language` = \''.$kraster->getInstance('session')->read('language').'\' LIMIT 1')->fetch(); message($error['message'],$template,$error['redirect'] != NULL ? $error['redirect'] : ''); } $template->display(); ?>