<?php
/*
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [DISCUZ!] Crossday Discuz! Board ::
:: (c) 2001-2005 Comsenz Technology Ltd (www.discuz.com) ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Author: Crossday (tech@discuz.com) Cnteacher (cnteacher@discuz.com) ::
:: Version: 2.5F 2004/10/01 05:15 ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/
//fix: BY pk0909
/*
1 发帖数衡量级别
2 转入最新帖
*/
define('CURRSCRIPT', 'viewthread');
require_once './include/common.php';
require_once DISCUZ_ROOT.'./include/forum.php';
require_once DISCUZ_ROOT.'./include/discuzcode.php';
$discuz_action = 3;
if ($tid && $forum){
$thread = $forum;
}elseif($fid && defined('ViewLastPost')) {
$followforum = '';
foreach($_DCACHE['forums'] as $ffid => $fforum) {
if($fforum['fup'] == $fid && $fforum['type'] == 'sub') {
$followforum .= ','.$ffid;
}
}
$followforumadd = $followforum ? "fid in ($fid{$followforum})" : "fid=$fid";
$query = $db->query("SELECT * FROM $table_threads WHERE $followforumadd ORDER BY lastpost DESC LIMIT 1");
if(!$thread = $db->fetch_array($query)) {
showmessage('thread_nonexistence');
}
header("Location: {$boardurl}viewthread.php?tid=$thread[tid]&sid=$sid");
exit();
} else {
showmessage('thread_nonexistence');
}
if (defined('ViewLastPost')) {
$page = @ceil(($thread['replies'] + 1) / $ppp);
}
$tid = $thread['tid'];
$codecount = 0;
$oldtopics = $_COOKIE['oldtopics'] ? $_COOKIE['oldtopics'] : "\t";
if(!strstr($oldtopics, "\t$tid\t")) {
$oldtopics .= "$tid\t";
setcookie('oldtopics', $oldtopics, $timestamp + 900, $cookiepath, $cookiedomain);
}
if($forum['type'] == 'forum') {
$navigation .= "» <a href=\"forumdisplay.php?fid=$fid&page=$fpage\"> $forum[name]</a> » $thread[subject]";
$navtitle .= ' - '.strip_tags($forum['name']).' - '.$thread['subject'];
} else {
$query = $db->query("SELECT fid, name, moderator FROM $table_forums WHERE fid='$forum[fup]'");
$fup = $db->fetch_array($query);
$navigation .= "» <a href=\"forumdisplay.php?fid=$fup[fid]\">$fup[name]</a> » <a href=\"forumdisplay.php?fid=$fid&page=$fpage\"> $forum[name]</a> » $thread[subject]";
$navtitle .= ' - '.strip_tags($fup['name']).' - '.strip_tags($forum['name']).' - '.$thread['subject'];
}
$ismoderator = modcheck($discuz_user);
if(!$forum['allowview']) {
if(!$forum['viewperm'] && !$allowview) {
showmessage('group_nopermission', NULL, 'HALTED');
} elseif($forum['viewperm'] && !strstr($forum['viewperm'], "\t$groupid\t")) {
showmessage('forum_nopermission', NULL, 'HALTED');
}
}
if($thread['readpopes'] && $thread['readpopes'] > $readpope && !$ismoderator && ($thread['authorid'] !=$discuz_uid)) {
showmessage('thread_noreadpope', NULL, 'HALTED');
}
if($thread['creditsrequire'] && $thread['creditsrequire'] > $credit && !$ismoderator && ($thread['authorid'] !=$discuz_uid)) {
showmessage('thread_nopermission', NULL, 'HALTED');
}
if($forum['password'] && $forum['password'] != $_COOKIE["fidpw$fid"]) {
header("Location: {$boardurl}forumdisplay.php?fid=$fid&sid=$sid");
exit();
}
if(!$action && $tid) {
if($discuz_uid && $newpm) {
require DISCUZ_ROOT.'./include/pmprompt.php';
}
$highlightstatus = str_replace('+', '', $highlight) ? 1 : 0;
$karmaoptions = '';
if($allowkarma && $maxkarmarate) {
$offset = ceil($maxkarmarate / 6);
for($vote = - $maxkarmarate + $offset; $vote <= $maxkarmarate; $vote += $offset) {
$votenum = $vote > 0 ? '+'.$vote : $vote;
$karmaoptions .= $vote ? "<option value=\"$vote\">$votenum</option>\n" : NULL;
}
}
unset($vote, $votenum, $offset);
$pageMax = ceil(($thread['replies']+1) / $ppp);
$page = intval($page) ? intval($page) : 1;
$page = $page > $pageMax ? $pageMax : $page;
$start_limit = ($page - 1) * $ppp;
$fpage = intval($fpage);
$multipage = multi($thread['replies'] + 1, $ppp, $page, "viewthread.php?tid=$tid&fpage=$fpage&highlight=".rawurlencode($highlight));
$thread[subject] = cutstr($thread[subject],77);
$polloptions = array();
if($thread['poll']) {
$query = $db->query("SELECT pollopts FROM $table_polls WHERE tid='$tid'");
$pollopts = unserialize($db->result($query, 0));
if (is_array($pollopts) && count($pollopts)){
foreach($pollopts['options'] as $option) {
$polloptions[] = array(
'option' => dhtmlspecialchars(stripslashes($option[0])),
'votes' => $option[1],
'width' => @round($option[1] * 300 / $pollopts['max']) + 2,
'percent' => @sprintf ("%01.2f", $option[1] * 100 / $pollopts['total'])
);
}
$allowvote = $allowvote && $discuz_uid && (empty($thread['closed']) || $alloweditpoll) && !in_array($discuz_user, $pollopts['voters']);
$optiontype = $pollopts['multiple'] ? 'checkbox' : 'radio';
}else{
unset ($pollopts);
}
}
$altbg1 = ALTBG1;
$altbg2 = ALTBG2;
$postlist = $attachelist = array();
$newpostanchor = $topiccount = $have_attachment = 0;
$postcount = $start_limit;
$post_phpcodecount = -1;
$post_user_info_sql = 'm.username, m.gender, m.groupid, m.adminid, m.regdate, m.lastactivity, m.postnum, m.credit, m.email, m.site, m.icq, m.oicq, m.yahoo, m.msn, m.location, m.avatar, m.avatarwidth, m.avatarheight, m.signature,m.readpope, m.prestige, m.sinew,
m.customstatus, m.showemail, m.bank, m.money, m.bankmimi, m.bankstatus
';
$query = $db->query("
SELECT p.*, $post_user_info_sql
FROM $table_posts p
LEFT JOIN $table_members m ON m.uid=p.authorid
WHERE p.tid='$tid' ORDER BY dateline LIMIT $start_limit, $ppp");
while($post = $db->fetch_array($query)) {
if(!$newpostanchor && $post['dateline'] > $lastvisit) {
$post['newpostanchor'] = '<a name="newpost"></a>';
$newpostanchor = 1;
} else {
$post['newpostanchor'] = '';
}
$topiccount ++;
$post['postcount'] = $postcount+1;
$post['thisbg'] = ${'altbg'.($postcount++ % 2 + 1)};
$post['dateline'] = gmdate("$dateformat $timeformat", $post['dateline'] + $timeoffset * 3600);
// nDesigner:仿4.0加入管理动作显示 Start [Author: 多口仔]
include language('templates');
$thread['moderatetime'] = gmdate("$dateformat $timeformat", $thread['threads_moderatetime'] + $timeoffset * 3600);
if($thread[threads_moderate] == 1) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_move]."";
} elseif ($thread[threads_moderate] == 3 && $thread[closed] == 1) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_close]."";
} elseif ($thread[threads_moderate] == 3 && $thread[closed] == 0) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_open]."";
} elseif ($thread[threads_moderate] == 4 && $thread[displayorder] > 0) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_top]."";
} elseif ($thread[threads_moderate] == 4 && $thread[displayorder] == 0) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_top_del]."";
} elseif ($thread[threads_moderate] == 5 && $thread[digest] > 0) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_digest]."";
} elseif ($thread[threads_moderate] == 5 && $thread[digest] == 0) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_digest_del]."";
} elseif ($thread[threads_moderate] == 6) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_highlight]."";
} elseif ($thread[threads_moderate] == 7) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_split]."";
} elseif ($thread[threads_moderate] == 8) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_merge]."";
} elseif ($thread[threads_moderate] == 9) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_bump]."";
} elseif ($thread[threads_moderate] == 10) {
$modaction = "".$language['thread_moderate']." <a href=viewpro.php?uid=".$thread[threads_moderatorid]."> ".$thread[threads_moderator]."</a> ".$language['on']." ".$thread[moderatetime]." ".$language[thread_moderate_recount]."";
}
// nDesigner:仿4.0加入管理动作显示 End [Author: 多口仔]
if($post['username']) {
if($userstatusby > 0 ){
if($userstatusby == 2 && $post['adminid'] == 0) {
foreach($_DCACHE['ranks'] as $rank) {
if($post['postnum'] > $rank['postshigher']) {
$post['authortitle'] = $rank['ranktitle'];
$post['stars'] = $rank['stars'];
break;
}
}
}else{
$post['authortitle'] = $_DCACHE['usergroups'][$post['groupid']]['grouptitle'];
$post['stars'] = $_DCACHE['usergroups'][$post['groupid']]['stars'];
}
}
$post['regdate'] = gmdate($dateformat, $post['regdate'] + $timeoffset * 3600);
if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
$post['avatar'] = '<img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0">';
} elseif($_DCACHE['usergroups'][$post['groupid']]['allowavatar'] && $post['avatar']) {
$post['avatar'] = '<img src="'.$post['avatar'].'" width="'.$post['avatarwidth'].'" height="'.$post['avatarheight'].'" border="0">';
} else {
$post['avatar'] = '';
}
} else {
if(!$post['authorid']) {
$post['useip'] = substr($post['useip'], 0, strrpos($post['useip'], '.')).'.x';
}
$post['postnum'] = $post['credit'] = $post['regdate'] = 'N/A';
}
$post['karma'] = '';
if($post['rate'] && $post['ratetimes']) {
$rateimg = $post['rate'] > 0 ? 'agree.gif' : 'disagree.gif';
for($i = 0; $i < round(abs($post['rate']) / $post['ratetimes']); $i++) {
$post['karma'] .= '<img src="'.IMGDIR.'/'.$rateimg.'" align="right">';
}
}
$post['ljl_karma'] = '';
if($post['rate'] && $post['ratetimes']) {
$rateimg = $post['rate'] > 0 ? 'agree.gif' : 'disagree.gif';
for($i = 0; $i < round(abs($post['rate']) / $post['ratetimes']); $i++) {
$post['ljl_karma'] .= ' <img src="'.IMGDIR.'/'.$rateimg.'">';
}
}
if($post['rate']) {
$post['rate'] >0 ? $ljl_sign = '+' : $ljl_sign = NULL;
$post['ljl_karma'] = '<tr><td colspan="3">此贴被 <font color=red>'.$ljl_sign.$post['rate'].'</font> 点积分'.$post['ljl_karma'].'</td></tr>';
$ljlquery = $db->query("SELECT k.*, m.username FROM $table_karmalog k
LEFT JOIN $table_members m ON k.uid = m.uid
WHERE pid='$post[pid]' ORDER BY dateline DESC");
while($lp_karma = $db->fetch_array($ljlquery)) {
$lp_karma['score'] >0 ? $ljl_sign = '+' : $ljl_sign = NULL;
$post['ljl_karma'].='<tr><td>评分者:【<a href=viewpro.php?username='.AddSlashes($lp_karma['username']).'>'.AddSlashes($lp_karma['username']).'</a>】</td><td>分数:<font color=red>'.$ljl_sign.$lp_karma['score'].'</font></td><td> 时间:'.gmdate("$dateformat $timeformat", $lp_karma['dateline'] + ($timeoffset * 3600)).'</td></tr>';
}
$post['ljl_karma'] = '<br><br><center><table border="0" cellspacing="0" cellpadding="1"
bgcolor="#698CC3"><tr><td><table border="0" cellspacing="0" cellpadding="4" bgcolor="#FFFFFF">'.$post['ljl_karma'].'</table></td></tr></table></center>';
}
$post['subject'] = $post['subject'] ? $post['subject'] : NULL;
//屏蔽用户
if($post['groupid'] == 4 || $post['groupid'] == 5){
$post['message'] = "该用户已被屏蔽!\n若有疑问请联系管理员!";
$forum['allowbbcode'] = 1;
$post['bbcodeoff'] = 0;
}
$post['message'] = postify($post['message'], $post['smileyoff'], $post['bbcodeoff'], $forum['allowsmilies'], $forum['allowhtml'], $forum['allowbbcode'], $forum['allowimgcode']);
$post['signature'] = $post['usesig'] && $post['signature'] ? postify($post['signature'], 1, 0, 0, 0, $_DCACHE['usergroups'][$post['groupid']]['allowsigbbcode'], $_DCACHE['usergroups'][$post['groupid']]['allowsigimgcode']) : NULL;
if(!$have_attachment && $post['aid']) $have_attachment = 1 ;
$postlist[] = $post;
}
if (empty($postlist)) {
showmessage('undefined_action', NULL, 'HALTED');
}
if ($have_attachment) {
require_once DISCUZ_ROOT.'./include/attachment.php';
$query = $db->query("select * from $table_attachments where tid='$tid' ORDER BY aid");
while($attach = $db->fetch_array($query)) {
$attach[checkid] = substr(md5($attach['filesize']),0,5);
$extension = strtolower(fileext($attach['filename']));
$attach['attachicon'] = attachtype($extension."\t".$attach['filetype']);
if($attachimgpost && in_array($extension, array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp'))) {
$attach['attachimg'] = 1;
} else {
$attach['attachimg'] = 0;
}
$attach['attachsize'] = sizecount($attach['filesize']);
$attach['dateline'] = $attach['dateline']?gmdate("$dateformat $timeformat", $attach['dateline'] + $timeoffset * 3600): '';
$attachelist["$attach[pid]"][] = $attach;
}
}
$forumselect = $forumjump ? forumselect() : NULL;
$usesigcheck = $signature ? 'checked' : NULL;
$allowpost = (!$forum['postperm'] && $allowpost) || ($forum['postperm'] && strstr($forum['postperm'], "\t$groupid\t")) || $forum['allowpost'];
$allowpostreply = (!$thread['closed'] || $ismoderator) && (!$delayreply || ($delayreply && (($timestamp - $thread[dateline] ) < $delayreply * 86400)) || $ismoderator) && ((!$forum['replyperm'] && $allowpost) || ($forum['replyperm'] && strstr($forum['replyperm'], "\t$groupid\t")) || $forum['allowreply']);
if($delayviewcount) {
$logfile = DISCUZ_ROOT.'./forumdata/viewcount.log';
if(substr($timestamp, -2) == '00') {
require DISCUZ_ROOT.'./include/misc.php';
updateviews();
}
if(@$fp = fopen($logfile, 'a')) {
fwrite($fp, "$tid\n");
fclose($fp);
}elseif($adminid == 1) {
showmessage('view_log_invalid');
}
} else {
$db->query("UPDATE LOW_PRIORITY $table_threads SET views=views+1 WHERE tid='$tid'", 'UNBUFFERED');
}
include template('viewthread');
} elseif($action == 'printable' && $tid) {
require DISCUZ_ROOT.'./include/printable.php';
}
?>
怎么样修整啊?? |