修改后的viewthread.php,文件
- <?php
- /*
- [DISCUZ!] viewthread.php - view thread posts
- This is NOT a freeware, use is subject to license terms
- Version: 2.2.0
- Author: Crossday (info@discuz.net)
- Copyright: Crossday Studio (www.crossday.com)
- Last Modified: 2002/12/6 17:00
- */
- require './include/common.php';
- require $discuz_root.'./include/forum.php';
- require $discuz_root.'./include/discuzcode.php';
- require_once './advcenter/bank_config.php';
- require_once $discuz_root.'./include/attachment.php';
- $tmp = explode(",",$forum[karmabyf]);
- $maxkarmabyf = $tmp[0];
- $offsetbyf = $tmp[1];
- $discuz_action = 3;
- $ismoderator = modcheck($discuz_user);
- $query = $db->query("SELECT * FROM $table_threads WHERE tid='$tid'");
- if(!$thread = $db->fetch_array($query)) {
- showmessage('thread_nonexistence');
- }
- $codecount = 0;
- $oldtopics = $HTTP_COOKIE_VARS['oldtopics'];
- if(!strstr($oldtopics, "\t$tid\t")) {
- $oldtopics .= $oldtopics ? "$tid\t" : "\t$tid\t";
- setcookie('oldtopics', $oldtopics, $timestamp + 3600, $cookiepath, $cookiedomain);
- }
- if($forum['type'] == 'forum') {
- $navigation .= "» <a href="forumdisplay.php?fid=$fid"> $forum[name]</a> » $thread[subject]";
- $navtitle .= " - $forum[name] - $thread[subject]";
- } else {
- $query = $db->query("SELECT fid, name 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"> $forum[name]</a> » $thread[subject]";
- $navtitle .= " - $fup[name] - $forum[name] - $thread[subject]";
- }
- if(!$forum['viewperm'] && !$allowview) {
- showmessage('group_nopermission');
- } elseif($forum['viewperm'] && !strstr($forum['viewperm'], "\t$groupid\t")) {
- showmessage('forum_nopermission');
- //fix: 解决如果贴子设定积分过高,作者自身可能无法观看和修改贴子
- } elseif($thread['creditsrequire'] && $thread['creditsrequire'] > $credit && !$ismoderator && $thread['author']<>$discuz_user) {
- showmessage('thread_nopermission');
- }
- if($forum['password'] != $HTTP_COOKIE_VARS["fidpw$fid"] && $forum['password']) {
- header("Location: {$boardurl}forumdisplay.php?fid=$fid&sid=$sid");
- discuz_exit();
- }
- if(!$action && $tid) {
- if($discuz_user && $newpm) {
- require $discuz_root.'./include/pmprompt.php';
- }
- $highlightstatus = str_replace("+", "", $highlight) ? 1 : 0;
- $karmaoptions = '';
-
- $query = $db->query("SELECT karmamode FROM $table_settings");
- $settings = $db->fetch_array($query);
- if($isadmin || $issupermod) {
- if($allowkarma && $maxkarmarate) {
- $offset = ceil($maxkarmarate / $karmasep);
- for($vote = - $maxkarmarate + $offset; $vote <= $maxkarmarate; $vote += $offset) {
- $votenum = $vote > 0 ? "+$vote" : $vote;
- $karmaoptions .= $vote ? "<option value="$vote">$votenum</option>\n" : NULL;
- }
- }
- } else {
- if($settings[karmamode]) {
- if($allowkarma && $maxkarmabyf) {
- $offset = ceil($maxkarmabyf / $offsetbyf);
- for($vote = - $maxkarmabyf + $offset; $vote <= $maxkarmabyf; $vote += $offset) {
- $votenum = $vote > 0 ? "+$vote" : $vote;
- $karmaoptions .= $vote ? "<option value="$vote">$votenum</option>\n" : NULL;
- }
- }
- } else {
- if($allowkarma && $maxkarmarate) {
- $offset = ceil($maxkarmarate / $karmasep);
- 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);
-
- $page = empty($page) ? 1 : $page;
- $start_limit = $numpost = ($page - 1) * $ppp;
- $db->unbuffered_query("UPDATE $table_threads SET views=views+1 WHERE tid='$tid'");
- $multipage = multi($thread['replies'] + 1, $ppp, $page, "viewthread.php?tid=$tid&highlight=".rawurlencode($highlight));
- if($thread['pollopts']) {
- $pollopts = unserialize($thread['pollopts']);
- $polloptions = array();
- 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_user && (empty($thread['closed']) || $issupermod) && !in_array($discuz_user, $pollopts['voters']);
- $optiontype = $pollopts['multiple'] ? 'checkbox' : 'radio';
- }
- $altbg1 = ALTBG1;
- $altbg2 = ALTBG2;
- $postcount = 0;
- $postlist = array();
- $attachments = $comma = '';
- //隐身插件
- $querypost = $db->query("select username from $table_sessions where invisible='1'");
- $pk_invisible = ',';
- while($pk_tmp_invisible = $db->fetch_array($querypost)) {
- $pk_invisible .= $pk_tmp_invisible['username'] . ',';
- }
- unset($pk_tmp_invisible);
- //隐身插件
- //-----------------------------虚拟形象参数查询
- require_once('./virtualimage/images_config.php');
- $imagesset = $setting;
- unset($setting);
- if($imagesset[openalpha]){
- $alpha = "FILTER: alpha(opacity="+WearArray[i]+")";
- }
- $imagesdatas = '';
- //-----------------------------
- $querypost = $db->query("SELECT p.*,m.uid, m.username, m.gender, m.status, m.regdate, m.lastvisit, m.postnum, m.credit, m.email, m.site, m.icq, m.oicq, m.yahoo, m.msn, m.location, m.avatar, m.signature, m.customstatus, m.showemail, m.bank, m.money
- FROM $table_posts p LEFT JOIN $table_members m ON m.username=p.author WHERE p.tid='$tid' ORDER BY dateline LIMIT $start_limit, $ppp");
- //-----------------------------Tom medal
- $querypost = $db->query("SELECT p.*, a.aid AS aaid, a.creditsrequire, a.filetype, a.filename, a.attachment, a.filesize, a.downloads, m.uid, m.username, m.gender, m.status, m.regdate, m.lastvisit, m.postnum, m.credit, m.email, m.site, m.icq, m.oicq, m.yahoo, m.msn, m.location, m.avatar, m.signature, m.customstatus, m.showemail, m.medals, m.useimages,m.bank,m.money
- FROM $table_posts p LEFT JOIN $table_members m ON m.username=p.author LEFT JOIN $table_attachments a ON p.aid<>'0' AND p.aid=a.aid WHERE p.tid='$tid' ORDER BY dateline LIMIT $start_limit, $ppp");
- while($post = $db->fetch_array($querypost)) {
- //隐身插件
- if (strstr($pk_invisible,','.$post['author'].',') && $post['author']!=$discuz_user && !$isadmin) $post['invisible']=1;
- else $post['invisible']=0;
- //隐身插件
- $bgno = $postcount++ % 2 + 1;
- $post['thisbg'] = ${'altbg'.$bgno};
- $post['number'] = ++$numpost;
- $post['dateline'] = gmdate("$dateformat $timeformat", $post['dateline'] + $timeoffset * 3600);
- if(isset($post['username']) && $post['author'] != 'Guest') {
- $post['authorenc'] = rawurlencode($post['author']);
- unset($groupinfo, $groupstars, $stars);
- foreach($_DCACHE['usergroups'] as $usergroup) {
- if((stristr($usergroup['specifiedusers'], "\t".addslashes($post['author'])."\t") || ($post['status'] == $usergroup['status'] && $usergroup['status'] != "Member")) && !$usergroup['creditshigher'] && !$usergroup['creditslower']) {
- if($groupstars < $usergroup['stars']) {
- $groupstars = $usergroup['stars'];
- }
- $groupinfo = $usergroup;
- } elseif($post['credit'] >= $usergroup['creditshigher'] && $post['credit'] < $usergroup['creditslower']) {
- if($post['status'] == $usergroup['status'] && !$groupinfo) {
- $groupstars = $usergroup['stars'];
- $groupinfo = $usergroup;
- } elseif($groupstars < $usergroup['stars']) {
- $groupstars = $usergroup['stars'];
- }
- if($groupinfo) {
- break;
- }
- }
- }
- // $post['authortitle'] = $post['customstatus'] ? $post['customstatus'] : $groupinfo['grouptitle'];
- $post['authortitle'] = $groupinfo['grouptitle'];
- $post['regdate'] = gmdate($dateformat, $post['regdate'] + $timeoffset * 3600);
- for($i = 0; $i < $groupstars; $i++) {
- $post['stars'] .= "<img src="".IMGDIR."/star.gif">";
- }
- $post['moneygroup'] = getmoneygroup($post['money']+$post['bank']);
- if($groupinfo['groupavatar']) {
- $post['avatar'] = image($groupinfo['groupavatar']);
- } elseif($groupinfo['allowavatar'] && $post['avatar']) {
- $post['avatar'] = '<img src="'.$post['avatar'].'" border="0">';
- } else {
- $post['avatar'] = '';
- }
- //------------------------------------------------------------虚拟形象
- if ($imagesset['orderuse']!='1' && $post['useimages']!=1){
- $post['avatar'] = $post['avatar'];
- }elseif($post['gender']=='0'){
- if($imagesset['orderuse']=='1'){
- $post['avatar'] = "<img src='{$imagesset[imageurl]}noface.gif' border='0'>";
- }else{
- $post['avatar'] = $post['avatar'];
- }
- }else{
- if ($post[gender]==1){
- $imagesdata[tempequip] = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0'; //男性的初始值
- $imagesdata[sex] = "m";
- $imagesdata[upid] = "init";
- }else if ($post[gender]==2){
- $imagesdata[tempequip] = '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //女性的初始值
- $imagesdata[sex] = "f";
- $imagesdata[upid] = "initf";
- }
- $imagesdata[pid] = $post[pid];
- $imagesdata[uid] = $post[uid];
- $imagesdatas[] = $imagesdata;
- $post['avatar'] = "
- <!-- 虚拟形象开始-->
- <DIV id=Show{$post['pid']}
- style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 140px; PADDING-TOP: 0px; POSITION: relative; TOP: 0px; HEIGHT: 226px"></DIV>
- <!-- 虚拟形象结束-->";
- }
- //--------------------------------------------------------------
- } else {
- $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['subject'] = $post['subject'] ? $post['subject'].'<br><br>' : NULL;
- $post['message'] = postify($post['message'], $post['smileyoff'], $post['bbcodeoff'], $forum['allowsmilies'], $forum['allowhtml'], $forum['allowbbcode'], $forum['allowimgcode']);
-
- //--------巧嘴娃娃v2.0.0 BY smallwl(www.xooo.net)
- if ($qiaozhui){
- require_once $discuz_root.'./qiaozhui.php';
- $qiaozhui_bgcolor = $altbg1;
- if ($post[number]%2==0){$qiaozhui_bgcolor = $altbg2;}
- $post['message'] = qiaozhui($post[message],$qiaozhui_act,$qiaozhui_num,$qiaozhui_bgcolor);
-
- }
- //--------巧嘴娃娃v2.0.0 BY smallwl(www.xooo.net)
- $post['signature'] = $post['usesig'] && $post['signature'] ? postify($post['signature'], 0, 0, 0, 0, $groupinfo['allowsigbbcode'], $groupinfo['allowsigimgcode']) : NULL;
-
-
-
- /* if($post['aaid']) {
- require_once $discuz_root.'./include/attachment.php';
- $extension = strtolower(substr(strrchr($post['filename'], "."), 1));
- $post['attachicon'] = attachicon($extension."\t".$postattach['filetype']);
- if($attachimgpost && ($extension == 'jpg' || $extension == 'jpeg' || $extension == 'jpe' || $extension == 'gif' || $extension == 'png' || $extension == 'bmp')) {
- $post['attachimg'] = 1;
- } elseif($attachimgpost && $extension == 'swf') {
- $post['attachimg'] = 2;
- } else {
- $post['attachimg'] = 0;
- $post['attachsize'] = sizecount($post['filesize']);
- }
- }*/
- if($post['aid']) {
- $aids= unserialize(stripslashes($post['aid']));
- if(is_array($aids)){
- foreach($aids as $postatt){
- $extension = strtolower(substr(strrchr($postatt['filename'], "."), 1));
- $postatt['attachicon'] = attachicon($extension."\t".$postatt['filetype']);
- //贴子买卖funciton ========start
- $postatt['attachtype'] = attachtype($extension."\t".$postatt['filetype']);
- $postatt['attachext'] = $extension;
- $postatt['attachsize'] = sizecount($postatt['filesize']);
- //贴子买卖funciton ========end
- if($attachimgpost && ($extension == 'jpg' || $extension == 'jpeg' || $extension == 'jpe' || $extension == 'gif' || $extension == 'png' || $extension == 'bmp')) {
- $postatt['attachimg'] = 1;
- }elseif($attachimgpost && $extension == 'swf') {
- $postatt['attachimg'] = 2;
- }else {
- $postatt['attachimg'] = 0;
- /*$post['attachsize'] = sizecount($post['filesize']);买卖帖hack使原码这行删除*/
- }
- $post['postatts'][]=$postatt;
- }
- $post['attnumber']=count($aids);
- }
- }
-
- //------------------ member medals
- if($post['medals']){
- require_once("./forumdata/cache/tom_medal.php");
- $medalid = strtok($post['medals'],",");
- while($medalid){
- $tempmedal .= "<img src={$medalurls[$medalid]} alt={$medals[$medalid]}> ";
- $medalid = strtok(",");}
- $post['medals'] = $tempmedal.'<br>';
- unset($tempmedal);
- }
- //------------------
-
- $postlist[] = $post;
-
- //------------------ member medals
- if($post['medals']){
- require_once("./forumdata/cache/tom_medal.php");
- $medalid = strtok($post['medals'],",");
- while($medalid){
- $tempmedal .= "<img src={$medalurls[$medalid]} alt={$medals[$medalid]}> ";
- $medalid = strtok(",");}
- $post['medals'] = $tempmedal.'<br>';
- unset($tempmedal);
- }
- //------------------
-
- }
- //--------------------------------------------虚拟形象
- if($imagesdatas!=''){
- $showimages = '';
- require_once('./virtualimage/global.php');
- $showimages = images_showimages($imagesdatas,$alhpa,$imagesset[imageurl]);
- unset($imagesdatas,$imagesdata,$alpha);
- }
- //--------------------------------------
- $forumselect = forumselect();
- if($fastpost && (!$thread['closed'] || $ismoderator) && ((!$forum['postperm'] && $allowpost) || ($forum['postperm'] && strstr($forum['postperm'], "\t$groupid\t")))) {
- $fastpost = 1;
- $usesigcheck = $signature ? "checked" : NULL;
- } else {
- $fastpost = 0;
- }
- include template('viewthread');
- } elseif($action == 'printable' && $tid) {
- require $discuz_root.'./include/printable.php';
- }
- ?>
复制代码
[ 本帖最后由 matiz 于 2006-11-24 20:22 编辑 ] |