📄 my.php
字号:
$extrasrchkey = '&srchkey='.rawurlencode($srchkey);
$srchkey = dhtmlspecialchars($srchkey);
} else {
$sqlkey = $extrasrchkey = $srchkey = '';
}
$sqltid = $tid ? 'AND tid ='.$tid : '';
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}trades WHERE sellerid='$discuz_uid' $sqltid $sqlkey");
$extratid = $tid ? "&tid=$tid" : '';
$multipage = multi($num, $tpp, $page, "my.php?item=tradethreads$extratid$extrafid$extrasrchkey");
$tradelist = array();
$query = $db->query("SELECT * FROM {$tablepre}trades WHERE sellerid='$discuz_uid' $sqltid $sqlkey ORDER BY tradesum DESC, totalitems DESC LIMIT $start_limit, $tpp");
while($tradethread = $db->fetch_array($query)) {
$tradethread['lastupdate'] = gmdate("$dateformat $timeformat", $tradethread['lastupdate'] + $timeoffset * 3600);
$tradethread['lastbuyer'] = rawurlencode($tradethread['lastbuyer']);
if($tradethread['expiration']) {
$tradethread['expiration'] = ($tradethread['expiration'] - $timestamp) / 86400;
if($tradethread['expiration'] > 0) {
$tradethread['expirationhour'] = floor(($tradethread['expiration'] - floor($tradethread['expiration'])) * 24);
$tradethread['expiration'] = floor($tradethread['expiration']);
} else {
$tradethread['expiration'] = -1;
}
}
$tradelist[] = $tradethread;
}
} elseif($item == 'reward') {
$rewardloglist = Array();
if($type == 'stats') {
$questions = $db->fetch_first("SELECT COUNT(*) AS total, SUM(ABS(netamount)) AS totalprice FROM {$tablepre}rewardlog WHERE authorid='$discuz_uid'");
$questions['total'] = $questions['total'] ? $questions['total'] : 0;
$questions['totalprice'] = $questions['totalprice'] ? $questions['totalprice'] : 0;
$questions['solved'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}rewardlog WHERE authorid='$discuz_uid' and answererid>0");
$questions['percent'] = number_format(($questions['total'] != 0) ? round($questions['solved'] / $questions['total'] * 100, 2) : 0, 2, '.', '');
$answers['total'] = $db->result_first("SELECT COUNT(*) FROM {$tablepre}rewardlog WHERE answererid='$discuz_uid'");
$answeradopted = $db->fetch_first("SELECT COUNT(*) AS tids, SUM(ABS(t.price)) AS totalprice
FROM {$tablepre}rewardlog r
LEFT JOIN {$tablepre}threads t USING(tid)
WHERE r.authorid>0 and r.answererid='$discuz_uid'");
$answers['adopted'] = $answeradopted['tids'];
$answers['totalprice'] = $answeradopted['totalprice'] ? $answeradopted['totalprice'] : 0;
$answers['percent'] = number_format(($answers['total'] != 0) ? round($answers['adopted'] / $answers['total'] * 100, 2) : 0, 2, '.', '');
} elseif($type == 'answer') {
$extra .= $srchfid ? '&type=answer' : '';
$filter = isset($filter) && in_array($filter, array('adopted', 'unadopted')) ? $filter : '';
$sqlfilter = empty($filter) ? '' : ($filter == 'adopted' ? 'AND r.authorid>0' : 'AND r.authorid=0');
$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;
$multipage = multi($db->result_first("SELECT COUNT(*) FROM {$tablepre}rewardlog r WHERE answererid='$discuz_uid'"), $tpp, $page, "my.php?item=reward&type=answer$extrafid");
$query = $db->query("SELECT r.*, t.subject, t.price, m.uid, m.username, f.fid, f.name
FROM {$tablepre}rewardlog r
LEFT JOIN {$tablepre}threads t ON t.tid=r.tid
LEFT JOIN {$tablepre}forums f ON f.fid=t.fid
LEFT JOIN {$tablepre}members m ON m.uid=t.authorid
WHERE r.answererid='$discuz_uid' $threadadd $sqlfilter
ORDER BY r.dateline DESC
LIMIT $start_limit, $tpp");
while($rewardlog = $db->fetch_array($query)) {
$rewardlog['dateline'] = gmdate("$dateformat $timeformat", $rewardlog['dateline'] + $timeoffset * 3600);
$rewardlog['price'] = abs($rewardlog['price']);
$rewardloglist[] = $rewardlog;
}
} elseif($type == 'question') {
$extra .= $srchfid ? '&type=question' : '';
$filter = in_array($filter, array('solved', 'unsolved')) ? $filter : '';
$sqlfilter = empty($filter) ? '' : ($filter == 'solved' ? 'AND r.answererid>0' : 'AND r.answererid=0');
$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;
$multipage = multi($db->result_first("SELECT COUNT(*) FROM {$tablepre}rewardlog r WHERE authorid='$discuz_uid' $sqlfilter"), $tpp, $page, "my.php?item=reward&type=question&filter=$filter$extrafid");
$query = $db->query("SELECT r.*, t.subject, t.price, m.uid, m.username, f.fid, f.name
FROM {$tablepre}rewardlog r
LEFT JOIN {$tablepre}threads t ON t.tid=r.tid
LEFT JOIN {$tablepre}forums f ON f.fid=t.fid
LEFT JOIN {$tablepre}members m ON m.uid=r.answererid
WHERE r.authorid='$discuz_uid' $threadadd $sqlfilter
ORDER BY r.dateline DESC
LIMIT $start_limit, $tpp");
while($rewardlog = $db->fetch_array($query)) {
$rewardlog['dateline'] = gmdate("$dateformat $timeformat", $rewardlog['dateline'] + $timeoffset * 3600);
$rewardlog['price'] = abs($rewardlog['price']);
$rewardloglist[] = $rewardlog;
}
} else {
showmessage('undefined_action');
}
} elseif($item == 'activities') {
$ended = isset($ended) && in_array($ended, array('yes', 'no')) ? $ended : '';
$sign = $ascadd = '';
$activity = array();
if($ended == 'yes') {
$sign = " AND starttimefrom<'$timestamp'";
$ascadd = 'DESC';
} elseif($ended == 'no') {
$sign = " AND starttimefrom>='$timestamp'";
}
if($type == 'orig') {
$extra .= $srchfid ? '&type=orig' : '';
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}activities a LEFT JOIN {$tablepre}threads t USING(tid) WHERE a.uid='$discuz_uid' AND t.special='4' $threadadd $sign");
$multipage = multi($num, $tpp, $page, "my.php?item=activities&type=orig&ended=$ended$extrafid");
$query = $db->query("SELECT a.*, t.subject FROM {$tablepre}activities a LEFT JOIN {$tablepre}threads t USING(tid) WHERE a.uid='$discuz_uid' AND t.special='4' $threadadd $sign ORDER BY starttimefrom $ascadd LIMIT $start_limit, $tpp");
while($tempact = $db->fetch_array($query)) {
$tempact['starttimefrom'] = gmdate("$dateformat $timeformat", $tempact['starttimefrom'] + $timeoffset * 3600);
$activity[] = $tempact;
}
} else {
$extra .= $srchfid ? '&type='.$type : '';
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}activityapplies aa LEFT JOIN {$tablepre}activities a USING(tid) LEFT JOIN {$tablepre}threads t USING(tid) WHERE a.uid='$discuz_uid' $threadadd$sign");
$multipage = multi($num, $tpp, $page, "my.php?item=activities&type=apply&ended=$ended$extrafid");
$query = $db->query("SELECT aa.verified, aa.tid, starttimefrom, a.place, a.cost, t.subject FROM {$tablepre}activityapplies aa LEFT JOIN {$tablepre}activities a USING(tid) LEFT JOIN {$tablepre}threads t USING(tid) WHERE aa.uid='$discuz_uid' $threadadd$sign ORDER BY starttimefrom $ascadd LIMIT $start_limit, $tpp");
while($tempact = $db->fetch_array($query)) {
$tempact['starttimefrom'] = gmdate("$dateformat $timeformat", $tempact['starttimefrom'] + $timeoffset * 3600);
$activity[] = $tempact;
}
}
} elseif($item == 'polls'){
$polllist = array();
if($type == 'poll') {
if($srchfid = intval($srchfid)) {
$threadadd = "AND fid='$srchfid'";
}
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}mythreads m, {$tablepre}threads t
WHERE m.uid='$discuz_uid' AND m.special='1' $threadadd AND m.tid=t.tid");
$multipage = multi($num, $tpp, $page, "my.php?item=polls&type=poll$extrafid");
$query = $db->query("SELECT t.tid, t.subject, t.fid, t.displayorder, t.closed, t.lastposter, t.lastpost
FROM {$tablepre}threads t, {$tablepre}mythreads m
WHERE m.uid='$discuz_uid' AND m.special='1' AND m.tid=t.tid $threadadd
ORDER BY m.dateline DESC LIMIT $start_limit, $tpp");
while($poll = $db->fetch_array($query)) {
$poll['lastpost'] = gmdate("$dateformat $timeformat", $poll['lastpost'] + $timeoffset * 3600);
$poll['lastposterenc'] = rawurlencode($poll['lastposter']);
$poll['forumname'] = $_DCACHE['forums'][$poll['fid']]['name'];
$polllist[] = $poll;
}
} else {
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}myposts m, {$tablepre}threads t
WHERE m.uid='$discuz_uid' AND m.special='1' $threadadd AND m.tid=t.tid");
$multipage = multi($num, $tpp, $page, "my.php?item=polls&type=join$extrafid");
$query = $db->query("SELECT m.dateline, t.tid, t.fid, t.subject, t.displayorder, t.closed
FROM {$tablepre}myposts m, {$tablepre}threads t
WHERE m.uid='$discuz_uid' AND m.special='1' AND m.tid=t.tid $threadadd
ORDER BY m.dateline DESC LIMIT $start_limit, $tpp");
while($poll = $db->fetch_array($query)) {
$poll['dateline'] = gmdate("$dateformat $timeformat", $poll['dateline'] + $timeoffset * 3600);
$poll['forumname'] = $_DCACHE['forums'][$poll['fid']]['name'];
$polllist[] = $poll;
}
}
} elseif($item == 'promotion' && ($creditspolicy['promotion_visit'] || $creditspolicy['promotion_register'])) {
$promotion_visit = $promotion_register = $space = '';
foreach(array('promotion_visit', 'promotion_register') as $val) {
if(!empty($creditspolicy[$val]) && is_array($creditspolicy[$val])) {
foreach($creditspolicy[$val] as $id => $policy) {
$$val .= $space.$extcredits[$id]['title'].' +'.$policy;
$space = ' ';
}
}
}
} elseif($item == 'debate') {
$debatelist = array();
if($type == 'orig') {
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}mythreads m, {$tablepre}threads t
WHERE m.uid='$discuz_uid' AND m.special='5' $threadadd AND m.tid=t.tid");
$multipage = multi($num, $tpp, $page, "my.php?item=debate&type=orig$extrafid");
$query = $db->query("SELECT t.tid, t.subject, t.fid, t.displayorder, t.closed, t.lastposter, t.lastpost
FROM {$tablepre}threads t, {$tablepre}mythreads m
WHERE m.uid='$discuz_uid' AND m.special='5' AND m.tid=t.tid $threadadd
ORDER BY m.dateline DESC LIMIT $start_limit, $tpp");
while($debate = $db->fetch_array($query)) {
$debate['lastpost'] = gmdate("$dateformat $timeformat", $debate['lastpost'] + $timeoffset * 3600);
$debate['lastposterenc'] = rawurlencode($debate['lastposter']);
$debate['forumname'] = $_DCACHE['forums'][$debate['fid']]['name'];
$debatelist[] = $debate;
}
} elseif($type == 'reply') {
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}myposts m, {$tablepre}threads t
WHERE m.uid='$discuz_uid' AND m.special='5' $threadadd AND m.tid=t.tid");
$multipage = multi($num, $tpp, $page, "my.php?item=debate&type=reply$extrafid");
$query = $db->query("SELECT m.dateline, t.tid, t.fid, t.subject, t.displayorder, t.closed
FROM {$tablepre}myposts m, {$tablepre}threads t
WHERE m.uid='$discuz_uid' AND m.special='5' AND m.tid=t.tid $threadadd
ORDER BY m.dateline DESC LIMIT $start_limit, $tpp");
while($debate = $db->fetch_array($query)) {
$debate['dateline'] = gmdate("$dateformat $timeformat", $debate['dateline'] + $timeoffset * 3600);
$debate['forumname'] = $_DCACHE['forums'][$debate['fid']]['name'];
$debatelist[] = $debate;
}
}
} elseif($item == 'video') {
require_once DISCUZ_ROOT.'./api/video.php';
$videolist = array();
$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}videos WHERE uid='$discuz_uid'");
$multipage = multi($num, $tpp, $page, "my.php?item=video");
$query = $db->query("SELECT * FROM {$tablepre}videos WHERE uid='$discuz_uid' ORDER BY dateline DESC LIMIT $start_limit, $tpp");
while($video = $db->fetch_array($query)) {
$video['vthumb'] = !$videoinfo['vthumb'] ? VideoClient_Util::getThumbUrl($video['vid'], 'small') : $videoinfo['vthumb'];
$video['dateline'] = gmdate("$dateformat $timeformat", $video['dateline'] + $timeoffset * 3600);
$video['vtime'] = $video['vtime'] ? sprintf("%02d", intval($video['vtime'] / 60)).':'.sprintf("%02d", intval($video['vtime'] % 60)) : '';
$videolist[] = $video;
}
$videonum = count($videolist);
$videoendrows = '';
if($colspan = $videonum % 2) {
while(($colspan - 2) < 0) {
$videoendrows .= '<td></td>';
$colspan ++;
}
$videoendrows .= '</tr>';
}
} elseif($item == 'buddylist') {
include_once DISCUZ_ROOT.'./uc_client/client.php';
$buddynum = uc_friend_totalnum($discuz_uid);
if(!submitcheck('buddysubmit', 1)) {
$buddynum && $buddylist = uc_friend_ls($discuz_uid, 1, 999, $buddynum);
if($buddylist) {
foreach($buddylist as $key => $buddy) {
$uids[] = $buddy['friendid'];
}
$query = $db->query("SELECT uid FROM {$tablepre}members WHERE uid IN (".implodeids($uids).")");
$members = array();
while($member = $db->fetch_array($query)) {
$members[] = $member['uid'];
}
foreach($buddylist as $key => $buddy) {
if(in_array($buddy['friendid'], $members)) {
$buddy['dateline'] = gmdate("$dateformat $timeformat", $buddy['dateline'] + $timeoffset * 3600);
$buddylist[$key] = $buddy;
} else {
unset($buddylist[$key]);
}
}
}
} else {
$buddynum && $buddyarray = uc_friend_ls($discuz_uid, 1, 999, $buddynum);
$buddyarraynew = array();
if($buddyarray) {
foreach($buddyarray as $buddy) {
$buddyarraynew[$buddy['friendid']] = $buddy;
}
}
$buddyarray = $buddyarraynew;unset($buddyarraynew);
if(!empty($delete) && is_array($delete)) {
uc_friend_delete($discuz_uid, $delete);
}
if(is_array($descriptionnew)) {
foreach($descriptionnew as $buddyid => $desc) {
if(($desc = cutstr(dhtmlspecialchars($desc), 255)) != addslashes($buddyarray[$buddyid]['comment'])) {
uc_friend_delete($discuz_uid, array($buddyid));
uc_friend_add($discuz_uid, $buddyid, cutstr(dhtmlspecialchars($desc), 255));
}
}
}
if(($newbuddy && $newbuddy != $discuz_userss) || ($newbuddyid && $newbuddyid != $discuz_uid)) {
$newbuddyid && $newbuddy = $db->result_first("SELECT username FROM {$tablepre}members WHERE uid='$newbuddyid'", 0);
if($buddyid = uc_get_user($newbuddy)) {
if(isset($buddyarray[$buddyid[0]])) {
showmessage('buddy_add_invalid');
}
uc_friend_add($discuz_uid, $buddyid[0], cutstr(dhtmlspecialchars($newdescription), 255));
if($ucappopen['UCHOME']) {
sendpm($buddyid[0], 'buddy_new_subject', 'buddy_new_uch_message', $discuz_uid);
} else {
sendpm($buddyid[0], 'buddy_new_subject', 'buddy_new_message', $discuz_uid);
}
} else {
showmessage('username_nonexistence');
}
}
showmessage('buddy_update_succeed', 'my.php?item=buddylist');
}
} else {
showmessage('undefined_action', NULL, 'HALTED');
}
include template('my');
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -