📄 viewthread.php
字号:
}
if(!$allowpaytoauthor) {
$post['alipay'] = '';
}
$post['taobao'] = addslashes($post['taobao']);
$post['authoras'] = !$post['anonymous'] ? ' '.addslashes($post['author']) : '';
$post['regdate'] = gmdate($dateformat, $post['regdate'] + $timeoffset * 3600);
$post['allowuseblog'] = $_DCACHE['usergroups'][$post['groupid']]['allowuseblog'];
if($post['medals']) {
require_once DISCUZ_ROOT.'./forumdata/cache/cache_medals.php';
foreach($post['medals'] = explode("\t", $post['medals']) as $key => $medalid) {
if(isset($_DCACHE['medals'][$medalid])) {
$post['medals'][$key] = $_DCACHE['medals'][$medalid];
} else {
unset($post['medals'][$key]);
}
}
}
if($showavatars) {
$post['avatarshow'] = $avatarshowstatus && !$post['anonymous'] && ($post['avatarshowid'] || $avatarshowdefault) ? avatarshow($post['avatarshowid'], $post['gender']) : '';
if($_DCACHE['usergroups'][$post['groupid']]['groupavatar']) {
$post['avatar'] = '<img src="'.$_DCACHE['usergroups'][$post['groupid']]['groupavatar'].'" border="0" alt="" />';
} elseif($avatarshowstatus != 2 && $_DCACHE['usergroups'][$post['groupid']]['allowavatar'] && $post['avatar']) {
$post['avatar'] = '<div class="avatar" style="width: '.$post['avatarwidth'].'"><img src="'.$post['avatar'].'" width="'.$post['avatarwidth'].'" height="'.$post['avatarheight'].'" border="0" alt="" /></div>';
} else {
$post['avatar'] = '';
}
}
} else {
if(!$post['authorid']) {
$post['useip'] = substr($post['useip'], 0, strrpos($post['useip'], '.')).'.x';
}
}
$post['attachments'] = array();
if($post['attachment'] && $allowgetattach) {
$attachpids .= ",$post[pid]";
$post['attachment'] = 0;
if(preg_match("/\[attach\](\d+)\[\/attach\]/i", $post['message'])) {
$attachtags[] = $post['pid'];
}
}
if($ratelogrecord && $post['ratetimes']) $ratelogpids .= ','.$post['pid'];
$forum['allowbbcode'] = $forum['allowbbcode'] ? ($_DCACHE['usergroups'][$post['groupid']]['allowcusbbcode'] ? 2 : 1) : 0;
$post['ratings'] = karmaimg($post['rate'], $post['ratetimes']);
$post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'], $forum['allowsmilies'], $forum['allowbbcode'], ($forum['allowimgcode'] && $showimages ? 1 : 0), $forum['allowhtml'], ($forum['jammer'] && $post['authorid'] != $discuz_uid ? 1 : 0), $pasetype, $post['authorid']);
$post['signature'] = $post['usesig'] ? $post['signature'] : '';
$postlist[$post['pid']] = $post;
}
if($vtonlinestatus == 2 && $onlineauthors) {
$query = $db->query("SELECT uid FROM {$tablepre}sessions WHERE uid IN(".(implode(',', $onlineauthors)).") AND invisible=0");
$onlineauthors = array();
while($author = $db->fetch_array($query)) {
$onlineauthors[$author['uid']] = 1;
}
} else {
$onlineauthors = array();
}
if($ratelogpids) {
$query = $db->query("SELECT * FROM {$tablepre}ratelog WHERE pid IN ($ratelogpids) ORDER BY dateline DESC");
while($ratelog = $db->fetch_array($query)) {
if(count($postlist[$ratelog['pid']]['ratelog']) < $ratelogrecord) {
$ratelog['dateline'] = gmdate("$dateformat $timeformat", $ratelog['dateline'] + $timeoffset * 3600);
$ratelog['score'] = $ratelog['score'] > 0 ? '+'.$ratelog['score'] : $ratelog['score'];
$postlist[$ratelog['pid']]['ratelog'][] = $ratelog;
}
}
}
if($attachpids) {
$query = $db->query("SELECT aid, pid, dateline, readperm, filename, description, filetype, attachment, filesize, downloads
FROM {$tablepre}attachments WHERE pid IN ($attachpids) ORDER BY aid");
if($db->num_rows($query)) {
require_once DISCUZ_ROOT.'./include/attachment.func.php';
while($attach = $db->fetch_array($query)) {
$extension = strtolower(fileext($attach['filename']));
$attach['dateline'] = gmdate("$dateformat $timeformat", $attach['dateline'] + $timeoffset * 3600);
$attach['attachicon'] = attachtype($extension."\t".$attach['filetype']);
$attach['attachsize'] = sizecount($attach['filesize']);
$attach['attachimg'] = $showimages && $attachimgpost && in_array($extension, array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp')) && (!$attach['readperm'] || $readaccess >= $attach['readperm']) ? 1 : 0;
$postlist[$attach['pid']]['attachments'][$attach['aid']] = $attach;
}
foreach($attachtags as $pid) {
$postlist[$pid]['message'] = preg_replace("/\[attach\](\d+)\[\/attach\]/ie", "attachtag($pid, \\1, \$postlist)", $postlist[$pid]['message']);
}
} else {
$db->query("UPDATE {$tablepre}posts SET attachment='0' WHERE pid IN ($attachpids)", 'UNBUFFERED');
}
}
}
if(empty($postlist)) {
showmessage('undefined_action', NULL, 'HALTED');
} elseif($threadcachestatus == 1) {
require_once './include/cache.func.php';
if(!is_dir($cachedir = DISCUZ_ROOT.'./forumdata/threadcaches/'.substr($tid, -2))) {
@mkdir($cachedir, 0777);
@touch($cachedir.'/index.htm');
}
if($fp = @fopen(DISCUZ_ROOT.'./forumdata/threadcaches/'.substr($tid, -2)."/{$tid}_{$page}.php", 'w+')) {
flock($fp, LOCK_EX);
fwrite($fp, '<?PHP $_DCACHE[\'threadcachetime\'] = '.$timestamp.";\n".'$_DCACHE[\'postlist\'] = '. arrayeval($postlist).'; ?>');
fclose($fp);
}
}
$relatedthreadlist = array();
$relatedthreadupdate = FALSE;
if($qihoo_status && $qihoo_relatedthreads && $qihoo_searchbox) {
$site = site();
$relatedkeywords = $metakeywords = '';
$query = $db->query("SELECT expiration, keywords, relatedthreads FROM {$tablepre}relatedthreads WHERE tid='$tid'");
$related = $db->fetch_array($query);
if($related['expiration'] > $timestamp) {
$relatedthreadlist = unserialize($related['relatedthreads']);
if($related['keywords']) {
$searchkeywords = rawurlencode(str_replace("\t", ' ', $related['keywords']));
foreach(explode("\t", $related['keywords']) as $keyword) {
$relatedkeywords .= $keyword ? '<a href="search.php?srchtype=qihoo&srchtxt='.rawurlencode($keyword).'&searchsubmit=yes" target="_blank"><span class="bold"><font color=red>'.$keyword.'</font></span></a> ' : '';
$metakeywords .= $keyword ? $keyword.',' : '';
}
}
} else {
$relatedthreadupdate = TRUE;
$verifykey = md5($authkey.$tid.$thread['subjectenc'].$charset.$site);
}
}
$relatedthreads = array();
if(!empty($relatedthreadlist)) {
if(!isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'relatedthreads') === FALSE) {
$relatedthreads['img'] = 'collapsed_no.gif';
$relatedthreads['style'] = '';
} else {
$relatedthreads['img'] = 'collapsed_yes.gif';
$relatedthreads['style'] = 'display: none';
}
}
$visitedforums = $visitedforums ? visitedforums() : '';
$forumselect = $forummenu = '';
if($forumjump && empty($jsmenu[1])) {
$forumselect = forumselect();
}
$usesigcheck = $discuz_uid && $sigstatus ? 'checked' : '';
$allowpostreply = ((!$thread['closed'] && !checkautoclose()) || $forum['ismoderator']) && ((!$forum['replyperm'] && $allowreply) || ($forum['replyperm'] && forumperm($forum['replyperm'])) || $forum['allowreply']);
$allowpost = (!$forum['postperm'] && $allowpost) || ($forum['postperm'] && forumperm($forum['postperm'])) || $forum['allowpost'];
$allowpostpoll = $allowpost && $allowpostpoll && substr(sprintf('%04b', $forum['allowpostspecial']), -1, 1);
$allowposttrade = $allowpost && $allowposttrade && substr(sprintf('%04b', $forum['allowpostspecial']), -2, 1);
$allowpostreward = $allowpost && $allowpostreward && substr(sprintf('%04b', $forum['allowpostspecial']), -3, 1) && isset($extcredits[$creditstrans]);
$allowpostactivity = $allowpost && $allowpostactivity && substr(sprintf('%04b', $forum['allowpostspecial']), -4, 1);
$supe_pushstatusadd = '';
if($supe_status && $supe_allowpushthread && $forum['supe_pushsetting']['status'] == 3) {
if(($thread['views'] && $forum['supe_pushsetting']['filter']['views'] && $thread['views'] >= intval($forum['supe_pushsetting']['filter']['views'])) ||
($thread['replies'] && $forum['supe_pushsetting']['filter']['replies'] && $thread['replies'] >= intval($forum['supe_pushsetting']['filter']['replies'])) ||
($thread['digest'] && $forum['supe_pushsetting']['filter']['digest'] && $thread['digest'] >= intval($forum['supe_pushsetting']['filter']['digest'])) ||
($thread['displayorder'] && $forum['supe_pushsetting']['filter']['displayorder'] && $thread['displayorder'] >= intval($forum['supe_pushsetting']['filter']['displayorder']))) {
if($thread['supe_pushstatus'] == 0) {
$supe_pushstatusadd = ", supe_pushstatus='3'";
}
} elseif($thread['supe_pushstatus'] == 3) {
$supe_pushstatusadd = ", supe_pushstatus='0'";
}
}
if(($delayviewcount == 1 || $delayviewcount == 3) && !$supe_pushstatusadd) {
$logfile = './forumdata/cache/cache_threadviews.log';
if(substr($timestamp, -2) == '00') {
require_once DISCUZ_ROOT.'./include/misc.func.php';
updateviews('threads', 'tid', 'views', $logfile);
}
if(@$fp = fopen(DISCUZ_ROOT.$logfile, 'a')) {
fwrite($fp, "$tid\n");
fclose($fp);
} elseif($adminid == 1) {
showmessage('view_log_invalid');
}
} else {
$db->query("UPDATE {$tablepre}threads SET views=views+1 $supe_pushstatusadd WHERE tid='$tid'", 'UNBUFFERED');
}
unset($supe_pushstatusadd);
if($fastpost && $allowpostreply) {
$editorid = 'fastpost';
$smcols = $smcols ? $smcols : 4;
$smileyinsert = $smileyinsert && is_array($_DCACHE['smilies_display']) ? 1 : 0;
$smilies = $smileyinsert ? smiliestable($_DCACHE['smilies_display'], $smcols, 4, $editorid) : '';
$moresmilies = $smileyinsert && count($_DCACHE['smilies_display']) > $smcols * 4 ? 1 : 0;
}
$forumselect = $forummenu = '';
if($forumjump) {
if($jsmenu[1]) {
$forummenu = forumselect(FALSE, 1);
} else {
$forumselect = forumselect();
}
}
include template('viewthread');
} elseif($action == 'printable' && $tid) {
require_once DISCUZ_ROOT.'./include/printable.inc.php';
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -