📄 viewthread_trade.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: viewthread_trade.inc.php 13429 2008-04-15 06:52:42Z cnteacher $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
if(empty($do) || $do == 'tradeinfo') {
if($do == 'tradeinfo') {
$tradelistadd = "pid = '$pid'";
$tradelistlimit = '';
} else {
$tradenum = $db->result_first("SELECT count(*) FROM {$tablepre}trades WHERE tid='$tid'");
$tradelistadd = 'displayorder>0';
$tradelistlimit = '';
!$tradenum && $allowpostreply = FALSE;
}
$query = $db->query("SELECT * FROM {$tablepre}trades WHERE tid='$tid' AND $tradelistadd ORDER BY displayorder $tradelistlimit");
$trades = array();$tradelist = 0;
if(empty($do)) {
$sellerid = 0;
$listcount = $db->num_rows($query);
$tradelist = $tradenum - $listcount;
}
$tradesaids = $tradesaids = array();
while($trade = $db->fetch_array($query)) {
if($trade['expiration']) {
$trade['expiration'] = ($trade['expiration'] - $timestamp) / 86400;
if($trade['expiration'] > 0) {
$trade['expirationhour'] = floor(($trade['expiration'] - floor($trade['expiration'])) * 24);
$trade['expiration'] = floor($trade['expiration']);
} else {
$trade['expiration'] = -1;
}
}
$tradesaids[] = $trade['aid'];
$tradespids[] = $trade['pid'];
$trades[$trade['pid']] = $trade;
}
$tradespids = implodeids($tradespids);
unset($trade);
if($tradespids) {
$query = $db->query("SELECT a.* FROM {$tablepre}attachments a WHERE a.pid IN ($tradespids)");
while($attach = $db->fetch_array($query)) {
if($attach['isimage'] && is_array($tradesaids) && in_array($attach['aid'], $tradesaids)) {
$trades[$attach['pid']]['attachurl'] = ($attach['remote'] ? $ftp['attachurl'] : $attachurl).'/'.$attach['attachment'];
$trades[$attach['pid']]['thumb'] = $trades[$attach['pid']]['attachurl'].($attach['thumb'] ? '.thumb.jpg' : '');
}
}
}
if($do == 'tradeinfo') {
$subjectpos = strrpos($navigation, '» ');
$subject = substr($navigation, $subjectpos + 8);
$navigation = substr($navigation, 0, $subjectpos).'» <a href="viewthread.php?tid='.$tid.'">'.$subject.'</a>';
$trade = $trades[$pid];
unset($trades);
$post = $db->fetch_first("SELECT p.*, m.uid, m.username, m.groupid, m.adminid, m.regdate, m.lastactivity, m.posts, m.digestposts, m.oltime,
m.pageviews, m.credits, m.extcredits1, m.extcredits2, m.extcredits3, m.extcredits4, m.extcredits5, m.extcredits6,
m.extcredits7, m.extcredits8, m.email, m.gender, m.showemail, m.invisible, mf.nickname, mf.site,
mf.icq, mf.qq, mf.yahoo, mf.msn, mf.taobao, mf.alipay, mf.location, mf.medals,
mf.avatarheight, mf.customstatus, mf.spacename, mf.buyercredit, mf.sellercredit $fieldsadd
FROM {$tablepre}posts p
LEFT JOIN {$tablepre}members m ON m.uid=p.authorid
LEFT JOIN {$tablepre}memberfields mf ON mf.uid=m.uid
WHERE pid='$pid'");
$postlist[$post['pid']] = viewthread_procpost($post);
if($attachpids) {
require_once DISCUZ_ROOT.'./include/attachment.func.php';
parseattach($attachpids, $attachtags, $postlist, $showimages, array($trade['aid']));
}
$post = $postlist[$pid];
$post['buyerrank'] = 0;
if($post['buyercredit']){
foreach($ec_credit['rank'] AS $level => $credit) {
if($post['buyercredit'] <= $credit) {
$post['buyerrank'] = $level;
break;
}
}
}
$post['sellerrank'] = 0;
if($post['sellercredit']){
foreach($ec_credit['rank'] AS $level => $credit) {
if($post['sellercredit'] <= $credit) {
$post['sellerrank'] = $level;
break;
}
}
}
$navtitle = $trade['subject'].' - ';
$tradetypeid = $trade['typeid'];
$typetemplate = '';
$optiondata = $optionlist = array();
if($tradetypeid && isset($tradetypes[$tradetypeid])) {
if(@include_once DISCUZ_ROOT.'./forumdata/cache/threadtype_'.$tradetypeid.'.php') {
$query = $db->query("SELECT optionid, value FROM {$tablepre}tradeoptionvars WHERE pid='$pid'");
while($option = $db->fetch_array($query)) {
$optiondata[$option['optionid']] = $option['value'];
}
foreach($_DTYPE as $optionid => $option) {
$optionlist[$option['identifier']]['title'] = $_DTYPE[$optionid]['title'];
if($_DTYPE[$optionid]['type'] == 'checkbox') {
$optionlist[$option['identifier']]['value'] = '';
foreach(explode("\t", $optiondata[$optionid]) as $choiceid) {
$optionlist[$option['identifier']]['value'] .= $_DTYPE[$optionid]['choices'][$choiceid].' ';
}
} elseif(in_array($_DTYPE[$optionid]['type'], array('radio', 'select'))) {
$optionlist[$option['identifier']]['value'] = $_DTYPE[$optionid]['choices'][$optiondata[$optionid]];
} elseif($_DTYPE[$optionid]['type'] == 'image') {
$maxwidth = $_DTYPE[$optionid]['maxwidth'] ? 'width="'.$_DTYPE[$optionid]['maxwidth'].'"' : '';
$maxheight = $_DTYPE[$optionid]['maxheight'] ? 'height="'.$_DTYPE[$optionid]['maxheight'].'"' : '';
$optionlist[$option['identifier']]['value'] = $optiondata[$optionid] ? "<a href=\"$optiondata[$optionid]\" target=\"_blank\"><img src=\"$optiondata[$optionid]\" $maxwidth $maxheight border=\"0\"></a>" : '';
} elseif($_DTYPE[$optionid]['type'] == 'url') {
$optionlist[$option['identifier']]['value'] = $optiondata[$optionid] ? "<a href=\"$optiondata[$optionid]\" target=\"_blank\">$optiondata[$optionid]</a>" : '';
} else {
$optionlist[$option['identifier']]['value'] = $optiondata[$optionid];
}
}
$typetemplate = $_DTYPETEMPLATE ? preg_replace(array("/\[(.+?)value\]/ies", "/{(.+?)}/ies"), array("showoption('\\1', 'value')", "showoption('\\1', 'title')"), $_DTYPETEMPLATE) : '';
}
$post['subject'] = '['.$tradetypes[$tradetypeid].'] '.$post['subject'];
}
include template('trade_info');
} else {
$post = $db->fetch_first("SELECT p.*, m.uid, m.username, m.groupid, m.adminid, m.regdate, m.lastactivity, m.posts, m.digestposts, m.oltime,
m.pageviews, m.credits, m.extcredits1, m.extcredits2, m.extcredits3, m.extcredits4, m.extcredits5, m.extcredits6,
m.extcredits7, m.extcredits8, m.email, m.gender, m.showemail, m.invisible, mf.nickname, mf.site,
mf.icq, mf.qq, mf.yahoo, mf.msn, mf.taobao, mf.alipay, mf.location, mf.medals,
mf.customstatus, mf.spacename, mf.buyercredit, mf.sellercredit $fieldsadd
FROM {$tablepre}posts p
LEFT JOIN {$tablepre}members m ON m.uid=p.authorid
LEFT JOIN {$tablepre}memberfields mf ON mf.uid=m.uid
WHERE p.tid='$tid' AND first=1 LIMIT 1");
$tmp = explode("\t\t\t", $post['message']);
$post['message'] = count($tmp) == 2 ? $tmp[0] : '';
$postlist[$post['pid']] = viewthread_procpost($post);
viewthread_parsetags();
$postlist[$post['pid']]['counterdesc'] = $postlist[$post['pid']]['message'];
$post = $postlist[$post['pid']];
$post['buyerrank'] = 0;
if($post['buyercredit']){
foreach($ec_credit['rank'] AS $level => $credit) {
if($post['buyercredit'] <= $credit) {
$post['buyerrank'] = $level;
break;
}
}
}
$post['sellerrank'] = 0;
if($post['sellercredit']){
foreach($ec_credit['rank'] AS $level => $credit) {
if($post['sellercredit'] <= $credit) {
$post['sellerrank'] = $level;
break;
}
}
}
include template('viewthread_trade');
}
} elseif($do == 'viewtradelist') {
$tradepp = 10;
$start_limit = ($page - 1) * $tradepp;
$query = $db->query("SELECT typeid FROM {$tablepre}trades WHERE tid='$tid' AND displayorder<=0");
$trades = $threadtradetypes = array();
$showtradetypemenu = FALSE;
while($tradetype = $db->fetch_array($query)) {
$threadtradetypes[$tradetype['typeid']] = $tradetype['typeid'];
$tradetype['typeid'] && !$showtradetypemenu && $showtradetypemenu = TRUE;
}
$typeadd = isset($tradetypeid) ? ' AND typeid=\''.intval($tradetypeid).'\'' : '';
$listcount = $db->result_first("SELECT count(*) FROM {$tablepre}trades WHERE tid='$tid' AND displayorder<=0 $typeadd");
$multipage = multi($listcount, $tradepp, $page, "viewthread.php?do=viewtradelist&tid=$tid".(isset($tradetypeid) ? "&tradetypeid=$tradetypeid" : '').(isset($highlight) ? "&highlight=".rawurlencode($highlight) : ''));
$query = $db->query("SELECT * FROM {$tablepre}trades WHERE tid='$tid' AND displayorder<=0 $typeadd ORDER BY displayorder DESC LIMIT $start_limit, $tradepp");
while($trade = $db->fetch_array($query)) {
if($trade['expiration']) {
$trade['expiration'] = ($trade['expiration'] - $timestamp) / 86400;
if($trade['expiration'] > 0) {
$trade['expirationhour'] = floor(($trade['expiration'] - floor($trade['expiration'])) * 24);
$trade['expiration'] = floor($trade['expiration']);
} else {
$trade['expiration'] = -1;
}
}
$trades[$trade['pid']] = $trade;
}
include template('viewthread_trade_list');
} elseif($do == 'viewfirstpost') {
$multipage = '';
$post = $db->fetch_first("SELECT p.*,m.username,m.adminid,m.groupid,m.credits FROM {$tablepre}posts p LEFT JOIN {$tablepre}members m ON m.uid=p.authorid WHERE tid='$tid' AND p.invisible='0' AND p.first='1' LIMIT 1");
$tmp = explode("\t\t\t", $post['message']);
$post['message'] = count($tmp) == 2 ? $tmp[1] : $tmp[0];
$postlist[$post['pid']] = viewthread_procpost($post, 1);
if($attachpids) {
require_once DISCUZ_ROOT.'./include/attachment.func.php';
parseattach($attachpids, $attachtags, $postlist, $showimages);
}
viewthread_parsetags();
$thread = $postlist[$post['pid']];
include template('viewthread_trade_post');
} elseif($do == 'viewshop') {
$tradepp = 10;
$start_limit = ($page - 1) * $tradepp;
$multipage1 = '';
$member = $db->fetch_first("SELECT bio FROM {$tablepre}memberfields WHERE uid='$thread[authorid]'");
list(, $member['biotrade']) = explode("\t\t\t", $member['bio']);
$threads = array();
$listcount = $db->result_first("SELECT count(*) FROM {$tablepre}threads WHERE authorid='$thread[authorid]' AND special='2' AND displayorder>='0'");
$multipage1 = multi($listcount, $tradepp, $page, "viewthread.php?do=viewshop&fid=$fid&tid=$tid");
$query = $db->query("SELECT tid, views, replies, subject, digest, lastpost, lastposter FROM {$tablepre}threads WHERE authorid='$thread[authorid]' AND special='2' AND displayorder>='0' ORDER BY lastpost DESC LIMIT $start_limit, $tradepp");
while($thread = $db->fetch_array($query)) {
$$thread['lastposterenc'] = rawurlencode($thread['lastposter']);
$thread['lastpost'] = gmdate("$dateformat $timeformat", $thread['lastpost'] + $timeoffset * 3600);
$threads[] = $thread;
}
include template('viewthread_trade_post');
} elseif(in_array($do, array('viewall', 'viewpost', 'viewtrade'))) {
$sqladd = $do == 'viewall' ? "WHERE p.tid='$tid' AND p.invisible='0' AND p.first='0'" :
($do == 'viewpost' ? "LEFT JOIN {$tablepre}trades tr ON p.pid=tr.pid WHERE p.tid='$tid' AND p.invisible='0' AND tr.tid IS null AND p.first='0'" :
"INNER JOIN {$tablepre}trades tr ON p.pid=tr.pid WHERE p.tid='$tid' AND p.invisible='0'");
$repostnum = $db->result_first("SELECT count(*) FROM {$tablepre}posts p $sqladd");
$ppp = $forum['threadcaches'] && !$discuz_uid ? $_DCACHE['settings']['postperpage'] : $ppp;
$start_limit = $numpost = ($page - 1) * $ppp;
if($start_limit > $repostnum) {
$start_limit = $numpost = 0;
$page = 1;
}
$multipage = multi($repostnum, $ppp, $page, "viewthread.php?tid=$tid&do=$do&extra=$extra".(isset($highlight) ? "&highlight=".rawurlencode($highlight) : ''));
$query = $db->query("SELECT p.*,m.username,m.adminid,m.groupid,m.credits FROM {$tablepre}posts p LEFT JOIN {$tablepre}members m ON m.uid=p.authorid $sqladd ORDER BY p.dateline LIMIT $start_limit, $ppp");
$tradespids = array();
while($post = $db->fetch_array($query)) {
$post['first'] = 0;
$post = viewthread_procpost($post, 1);
$postlist[$post['pid']] = $post;
$tradespids[] = $post['pid'];
}
if(($do == 'viewtrade' || $do == 'viewall') && $tradespids) {
$query = $db->query("SELECT * FROM {$tablepre}trades WHERE pid IN (".implodeids($tradespids).")");
while($trade = $db->fetch_array($query)) {
if($trade['expiration']) {
$trade['expiration'] = ($trade['expiration'] - $timestamp) / 86400;
if($trade['expiration'] > 0) {
$trade['expirationhour'] = floor(($trade['expiration'] - floor($trade['expiration'])) * 24);
$trade['expiration'] = floor($trade['expiration']);
} else {
$trade['expiration'] = -1;
}
}
$trades[$trade['pid']] = $trade;
$tradesaids[] = $trade['aid'];
}
}
if($attachpids) {
require_once DISCUZ_ROOT.'./include/attachment.func.php';
parseattach($attachpids, $attachtags, $postlist, $showimages, $tradesaids);
}
if($tradespids) {
$tradespids = implodeids($tradespids);
$query = $db->query("SELECT a.* FROM {$tablepre}attachments a WHERE a.pid IN ($tradespids)");
while($attach = $db->fetch_array($query)) {
if($attach['isimage'] && is_array($tradesaids) && in_array($attach['aid'], $tradesaids)) {
$trades[$attach['pid']]['attachurl'] = ($attach['remote'] ? $ftp['attachurl'] : $attachurl).'/'.$attach['attachment'];
$trades[$attach['pid']]['thumb'] = $trades[$attach['pid']]['attachurl'].($attach['thumb'] ? '.thumb.jpg' : '');
}
}
}
include template('viewthread_trade_post');
} elseif($do == 'viewrelatedtrade') {
$multipage = '';
$relatedtrades = !empty($insenz['relatedtrades']) ? stripslashes($insenz['relatedtrades']) : '';
include template('viewthread_trade_post');
}
exit;
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -