📄 request.func.php
字号:
LIMIT $startrow,$items;"
);
while($data = $db->fetch_array($query)) {
$datalist[$data['tid']]['fid'] = $data['fid'];
$datalist[$data['tid']]['fname'] = isset($_DCACHE['forums'][$data['fid']]['name']) ? str_replace('\'', ' ',addslashes($_DCACHE['forums'][$data['fid']]['name'])) : NULL;
$datalist[$data['tid']]['fnamelength'] = strlen($datalist[$data['tid']]['fname']);
$datalist[$data['tid']]['subject'] = isset($data['subject']) ? str_replace('\'', ' ',addslashes($data['subject'])) : NULL;
$datalist[$data['tid']]['dateline'] = gmdate("$dateformat $timeformat",$data['dateline'] + $_DCACHE['settings']['timeoffset'] * 3600);
$datalist[$data['tid']]['lastpost'] = gmdate("$dateformat $timeformat",$data['lastpost'] + $_DCACHE['settings']['timeoffset'] * 3600);
$datalist[$data['tid']]['lastposter'] = $data['lastposter'];
$datalist[$data['tid']]['authorid'] = $data['authorid'];
$datalist[$data['tid']]['views'] = $data['views'];
$datalist[$data['tid']]['replies'] = $data['replies'];
$datalist[$data['tid']]['highlight'] = $data['highlight'];
$datalist[$data['tid']]['message'] = cutmessage($data['message'], $messagelength);
$datalist[$data['tid']]['imgattach'] = ($data['remote'] ? $_DCACHE['settings']['ftp']['attachurl'] : $attachurl)."/$data[attachment]".($_DCACHE['settings']['thumbstatus'] && $data['thumb'] ? '.thumb.jpg' : '');
if($data['author']) {
$datalist[$data['tid']]['author'] = $data['author'];
} else {
$datalist[$data['tid']]['author'] = 'Anonymous';
$datalist[$data['tid']]['authorid'] = 0;
}
if($data['lastposter']) {
$datalist[$data['tid']]['lastposter'] = $data['lastposter'];
} else {
$datalist[$data['tid']]['lastposter'] = '';
}
$datalist[$data['tid']]['typeid'] = $data['typeid'];
$datalist[$data['tid']]['sortid'] = $data['sortid'];
$datalist[$data['tid']]['subjectprefix'] = '';
$threadtypeids[] = $data['typeid'];
$threadtypeids[] = $data['sortid'];
}
if(($threadsort || $threadtype) && $threadtypeids) {
$typelist = array();
$query = $db->query("SELECT typeid, name FROM {$tablepre}threadtypes WHERE typeid IN ('".implode('\',\'', $threadtypeids)."')");
while($typearray = $db->fetch_array($query)) {
$typelist[$typearray['typeid']] = $typearray['name'];
}
foreach($datalist AS $tid=>$value) {
$subjectprefix = '';
if($threadsort && $value['sortid'] && isset($typelist[$value['sortid']])) {
$subjectprefix .= '['.$typelist[$value['sortid']].']';
}
if($threadtype && $value['typeid'] && isset($typelist[$value['typeid']])) {
$subjectprefix .= '['.$typelist[$value['typeid']].']';
}
$datalist[$tid]['subjectprefix'] = $subjectprefix;
}
}
$writedata = '';
if(is_array($datalist)) {
$colorarray = array('', '#EE1B2E', '#EE5023', '#996600', '#3C9D40', '#2897C5', '#2B65B7', '#8F2A90', '#EC1282');
$prefix = $picpre ? "<img src='$picpre' border='0' align='absmiddle'>" : NULL;
$requesttemplate = !$requesttemplate ? '{prefix} {subject}<br />' : $requesttemplate;
$order = 1;
foreach($datalist AS $tid=>$value) {
$SubjectStyles = '';
if($highlight && $value['highlight']) {
$string = sprintf('%02d', $value['highlight']);
$stylestr = sprintf('%03b', $string[0]);
$SubjectStyles .= " style='";
$SubjectStyles .= $stylestr[0] ? 'font-weight: bold;' : NULL;
$SubjectStyles .= $stylestr[1] ? 'font-style: italic;' : NULL;
$SubjectStyles .= $stylestr[2] ? 'text-decoration: underline;' : NULL;
$SubjectStyles .= $string[1] ? 'color: '.$colorarray[$string[1]] : NULL;
$SubjectStyles .= "'";
}
$replace['{link}'] = $boardurl."viewthread.php?tid=$tid";
$value['prefixlength'] = $value['subjectprefix'] ? strlen(strip_tags($value['subjectprefix'])) : 0;
$value['maxlength'] = $maxlength - $value['prefixlength'];
$replace['{subject_nolink}'] = $value['subjectprefix'].cutstr($value['subject'],($fnamelength ? ($value['maxlength'] - $value['fnamelength']) : $value['maxlength']), '');
$replace['{subject_full}'] = $value['subjectprefix'].$value['subject'];
$replace['{prefix}'] = $prefix;
$replace['{forum}'] = "<a href='".$boardurl."forumdisplay.php?fid=$value[fid]'$LinkTarget>$value[fname]</a>";
$replace['{dateline}'] = $value['dateline'];
$replace['{subject}'] = "<a href='".$boardurl."viewthread.php?tid=$tid' title='$value[subject]'$SubjectStyles$LinkTarget>".$replace['{subject_nolink}']."</a>";
$replace['{message}'] = $value['message'];
if($value['authorid']) {
$replace['{author}'] = "<a href='".$boardurl."space.php?uid=$value[authorid]'$LinkTarget>$value[author]</a>";
} else {
$replace['{author}'] = $value['author'];
}
$replace['{author_nolink}'] = $value['author'];
if($value['lastposter'] !== '') {
$replace['{lastposter}'] = "<a href='".$boardurl."space.php?username=".rawurlencode($value['lastposter'])."'$LinkTarget>$value[lastposter]</a>";
$replace['{lastposter_nolink}'] = $value['lastposter'];
} else {
$replace['{lastposter}'] = $replace['{lastposter_nolink}'] = 'Anonymous';
}
$replace['{lastpost}'] = $value['lastpost'];
$replace['{views}'] = $value['views'];
$replace['{replies}'] = $value['replies'];
$replace['{imgattach}'] = $value['imgattach'];
$replace['{order}'] = $order++;
$writedata .= nodereplace($replace, $requesttemplate);
}
}
} elseif($function == 'forums') {
$fups = isset($requestdata['fups']) ? $requestdata['fups'] : NULL;
$orderby = isset($requestdata['orderby']) ? (in_array($requestdata['orderby'],array('displayorder','threads','posts')) ? $requestdata['orderby'] : 'displayorder') : 'displayorder';
$datalist = array();
$query = $db->query("SELECT `fid`,`fup`,`name`,`status`,`threads`,`posts`,`todayposts`,`displayorder`,`type`
FROM `{$tablepre}forums`
WHERE `type`!='group'
".($fups ? "AND `fup` IN ('".str_replace('_', '\',\'', $fups)."') " : "")."
AND `status`='1'
ORDER BY ".($orderby == 'displayorder' ? " `displayorder` ASC " : " `$orderby` DESC")."
LIMIT $startrow,".($items > 0 ? $items : 65535).";"
);
while($data = $db->fetch_array($query)) {
$datalist[$data['fid']]['name'] = str_replace('\'', ' ',addslashes($data['name']));
$datalist[$data['fid']]['threads'] = $data['threads'];
$datalist[$data['fid']]['posts'] = $data['posts'];
$datalist[$data['fid']]['todayposts'] = $data['todayposts'];
}
$writedata = '';
if(is_array($datalist)) {
$requesttemplate = !$requesttemplate ? '{forumname}<br />' : $requesttemplate;
$order = 1;
foreach($datalist AS $fid=>$value) {
$replace['{link}'] = $boardurl."forumdisplay.php?fid=$fid";
$replace['{forumname_nolink}'] = $value['name'];
$replace['{forumname}'] = "<a href='".$boardurl."forumdisplay.php?fid=$fid'$LinkTarget>$value[name]</a>";
$replace['{threads}'] = $value['threads'];
$replace['{posts}'] = $value['posts'];
$replace['{todayposts}'] = $value['todayposts'];
$replace['{order}'] = $order++;
$writedata .= nodereplace($replace, $requesttemplate);
}
}
} elseif($function == 'memberrank') {
$orderby = isset($requestdata['orderby']) ? (in_array($requestdata['orderby'],array('credits','extcredits','posts','digestposts','regdate','hourposts','todayposts','weekposts','monthposts')) ? $requestdata['orderby'] : 'credits') : 'credits';
$hours = isset($requestdata['hours']) ? intval($requestdata['hours']) : 0;
$datalist = array();
switch($orderby) {
case 'credits':
$sql = "SELECT m.`username`,m.`uid`,m.`credits` FROM `{$tablepre}members` m ORDER BY m.`credits` DESC";
break;
case 'extcredits':
$requestdata['extcredit'] = intval($requestdata['extcredit']);
$sql = "SELECT m.`username`,m.`uid`,m.`extcredits$requestdata[extcredit]` FROM `{$tablepre}members` m ORDER BY m.`extcredits$requestdata[extcredit]` DESC";
break;
case 'posts':
$sql = "SELECT m.`username`,m.`uid`,m.`posts` FROM `{$tablepre}members` m ORDER BY m.`posts` DESC";
break;
case 'digestposts':
$sql = "SELECT m.`username`,m.`uid`,m.`digestposts` FROM `{$tablepre}members` m ORDER BY m.`digestposts` DESC";
break;
case 'regdate':
$sql = "SELECT m.`username`,m.`uid`,m.`regdate` FROM `{$tablepre}members` m ORDER BY m.`regdate` DESC";
break;
case 'hourposts';
$historytime = $timestamp - 3600 * intval($hours);
$sql = "SELECT DISTINCT(p.author) AS username,p.authorid AS uid,COUNT(p.pid) AS postnum FROM `{$tablepre}posts` p WHERE p.`dateline`>=$historytime AND p.`authorid`!='0' GROUP BY p.`author` ORDER BY `postnum` DESC";
break;
case 'todayposts':
$historytime = mktime(0, 0, 0, date('m', $timestamp), date('d', $timestamp), date('Y', $timestamp));
$sql = "SELECT DISTINCT(p.author) AS username,p.authorid AS uid,COUNT(p.pid) AS postnum FROM `{$tablepre}posts` p WHERE p.`dateline`>=$historytime AND p.`authorid`!='0' GROUP BY p.`author` ORDER BY `postnum` DESC";
break;
case 'weekposts':
$week = gmdate('w', $timestamp) - 1;
$week = $week != -1 ? $week : 6;
$historytime = mktime(0, 0, 0, date('m', $timestamp), date('d', $timestamp) - $week, date('Y', $timestamp));
$sql = "SELECT DISTINCT(p.author) AS username,p.authorid AS uid,COUNT(p.pid) AS postnum FROM `{$tablepre}posts` p LEFT JOIN `{$tablepre}memberfields` mf ON mf.`uid` = p.`authorid` WHERE p.`dateline`>=$historytime AND p.`authorid`!='0' GROUP BY p.`author` ORDER BY `postnum` DESC";
break;
case 'monthposts':
$historytime = mktime(0, 0, 0, date('m', $timestamp), 1, date('Y', $timestamp));
$sql = "SELECT DISTINCT(p.author) AS username,p.authorid AS uid,COUNT(p.pid) AS postnum FROM `{$tablepre}posts` p LEFT JOIN `{$tablepre}memberfields` mf ON mf.`uid` = p.`authorid` WHERE p.`dateline`>=$historytime AND p.`authorid`!='0' GROUP BY p.`author` ORDER BY `postnum` DESC";
break;
}
$query = $db->query($sql." LIMIT $startrow,$items;");
while($data = $db->fetch_array($query,MYSQL_NUM)) {
$data[2] = $orderby == 'regdate' ? gmdate($dateformat,$data[2] + $_DCACHE['settings']['timeoffset'] * 3600) : $data[2];
$datalist[] = $data;
}
$writedata = '';
if(is_array($datalist)) {
$requesttemplate = !$requesttemplate ? '{regdate} {member} {value}<br />' : $requesttemplate;
$order = 1;
foreach($datalist AS $value) {
$replace['{regdate}'] = $replace['{value}'] = '';
if($orderby == 'regdate') {
$replace['{regdate}'] = $value[2];
} else {
$replace['{value}'] = $value[2];
}
$replace['{uid}'] = $value[1];
$replace['{member}'] = "<a href='".$boardurl."space.php?uid=$value[1]'$LinkTarget>$value[0]</a>";
$replace['{avatar}'] = "<a title='".htmlspecialchars($value[0])."' href='".$boardurl."space.php?uid=$value[1]'$LinkTarget>".discuz_uc_avatar($value[1])."</a>";
$replace['{avatarsmall}'] = "<a title='".htmlspecialchars($value[0])."' href='".$boardurl."space.php?uid=$value[1]'$LinkTarget>".discuz_uc_avatar($value[1], 'small')."</a>";
$replace['{avatarbig}'] = "<a title='".htmlspecialchars($value[0])."' href='".$boardurl."space.php?uid=$value[1]'$LinkTarget>".discuz_uc_avatar($value[1], 'big')."</a>";
$replace['{order}'] = $order++;
$writedata .= nodereplace($replace, $requesttemplate);
}
}
} elseif($function == 'stats') {
$info = isset($requestdata['info']) ? $requestdata['info'] : NULL;
if(is_array($info)) {
$language = $info;
$info_index = '';
$statsinfo = array();
$statsinfo['forums'] = $statsinfo['threads'] = $statsinfo['posts'] = 0;
$query = $db->query("SELECT `status`,`threads`,`posts`
FROM `{$tablepre}forums` WHERE
`status`='1';
");
while($forumlist = $db->fetch_array($query)) {
$statsinfo['forums']++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -