📄 javascript.php
字号:
foreach ($datalist AS $fid=>$name) {
echo "document.writeln(\"<a href='".$boardurl."forumdisplay.php?fid=$fid'$LinkTarget>$name</a><br />\");\r\n";
}
}
} elseif ($function == 'memberrank') {
//会员排行
$orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'credits';
$cachefile = DISCUZ_ROOT.'./forumdata/cache/javascript_'.md5("memberrank|$startrow|$items|$orderby").'.php';
if((@!include($cachefile)) || $expiration < $timestamp) {
$datalist = array();
switch ($orderby) {
case 'credits':
$sql = "SELECT `username`,`uid`,`credits` FROM `{$tablepre}members` ORDER BY `credits` DESC";
break;
case 'posts':
$sql = "SELECT `username`,`uid`,`posts` FROM `{$tablepre}members` ORDER BY `posts` DESC";
break;
case 'digestposts':
$sql = "SELECT `username`,`uid`,`digestposts` FROM `{$tablepre}members` ORDER BY `digestposts` DESC";
break;
case 'regdate':
$sql = "SELECT `username`,`uid`,`regdate` FROM `{$tablepre}members` ORDER BY `regdate` DESC";
break;
case 'todayposts':
$sql = "SELECT DISTINCT(author) AS username,authorid AS uid,COUNT(pid) AS postnum FROM `{$tablepre}posts` WHERE `dateline` >= ".($timestamp - 86400)." AND `authorid`!='0' GROUP BY `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' ? date($timeformat,$data[2]) : $data[2];
$datalist[] = $data;
}
$writedata = "\$datalist = unserialize('".addcslashes(serialize($datalist), '\\\'')."');";
UpdateCache($cachefile,$writedata);
}
//读出并显示
if (is_array($datalist)) {
if ($orderby == 'regdate') {
foreach ($datalist AS $value) {
echo "document.writeln(\"($value[2]) <a href='".$boardurl."viewpro.php?uid=$value[1]'$LinkTarget>$value[0]</a><br />\");\r\n";
}
} else {
foreach ($datalist AS $value) {
echo "document.writeln(\"<a href='".$boardurl."viewpro.php?uid=$value[1]'$LinkTarget>$value[0]</a> ($value[2])<br />\");\r\n";
}
}
}
} elseif ($function == 'stats') {
//论坛统计
$info = isset($_GET['info']) ? $_GET['info'] : NULL;
$language = $info;
if (is_array($info)) {
$info_index = '';
$cachefile = DISCUZ_ROOT.'./forumdata/cache/javascript_'.md5("stats|forums|threads|posts|members|online|onlinemembers").'.php';
if((@!include($cachefile)) || $expiration < $timestamp) {
$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)) {
//forums论坛数、threads主题数、posts帖子数
$statsinfo['forums']++;
$statsinfo['threads'] += $forumlist['threads'];
$statsinfo['posts'] += $forumlist['posts'];
}
unset($info['forums'],$info['threads'],$info['posts']);
foreach ($info AS $index=>$value) {
//members会员数、online在线人数、onlinemembers在线会员数
if ($index == 'members') {
$sql = "SELECT COUNT(*) FROM `{$tablepre}members`;";
} elseif ($index == 'online') {
$sql = "SELECT COUNT(*) FROM `{$tablepre}sessions`;";
} elseif ($index == 'onlinemembers') {
$sql = "SELECT COUNT(*) FROM `{$tablepre}sessions` WHERE `uid`>'0';";
}
if ($index == 'members' || $index == 'online' || $index == 'onlinemembers') {
$query = $db->query($sql);
$statsinfo[$index] = $db->result($query, 0);
}
}
unset($index,$value);
$writedata = "\$statsinfo = unserialize('".addcslashes(serialize($statsinfo), '\\\'')."');";
UpdateCache($cachefile,$writedata);
}
//读出数据并显示
foreach ($language AS $index=>$value) {
echo "document.write(\"$value$statsinfo[$index]<br />\");\r\n";
}
}
} elseif ($function == 'images') {
//附件图片调用
$maxwidth = isset($_GET['maxwidth']) ? $_GET['maxwidth'] : 0;
$maxheight = isset($_GET['maxheight']) ? $_GET['maxheight'] : 0;
$cachefile = DISCUZ_ROOT.'./forumdata/cache/javascript_'.md5("images|$fids|$startrow|$items|$digest").'.php';
if((@!include($cachefile)) || $expiration < $timestamp) {
require_once DISCUZ_ROOT.'./forumdata/cache/cache_forums.php';
$datalist = array();
$sql = ($fids ? ' AND `fid` IN (\''.str_replace('_', '\',\'', $fids).'\')' : '')
.(($digest > 0 && $digest < 15) ? DigestLevel($digest) : '');
$query = $db->query("SELECT attach.*,t.tid,t.fid,t.digest,t.author,t.dateline,t.subject,t.displayorder
FROM `{$tablepre}attachments` attach
LEFT JOIN `{$tablepre}threads` t
ON `t`.`tid`=`attach`.`tid`
WHERE `attach`.`readperm`='0'
AND `displayorder`>='0'
AND `filetype` LIKE '%image/%'
$sql
GROUP BY `attach`.`tid`
ORDER BY `attach`.`dateline` DESC,`attach`.`tid` DESC
LIMIT $startrow,$items;"
);
while ($data = $db->fetch_array($query)) {
$datalist[$data['tid']]['threadlink'] = $boardurl."viewthread.php?tid=$data[tid]";
$datalist[$data['tid']]['imgfile'] = $boardurl."$attachdir/$data[attachment]";
$datalist[$data['tid']]['subject'] = str_replace('\'', ' ',$data['subject']);
$datalist[$data['tid']]['author'] = addslashes($data['author']);
$datalist[$data['tid']]['dateline'] = date("$dateformat $timeformat",$data['dateline']);
$datalist[$data['tid']]['fname'] = isset($_DCACHE['forums'][$data['fid']]['name']) ? str_replace('\'', ' ',addslashes($_DCACHE['forums'][$data['fid']]['name'])) : NULL;
$datalist[$data['tid']]['description'] = $data['description'] ? str_replace('\'', ' ',addslashes($data['description'])) : NULL;
}
$writedata = "\$datalist = unserialize('".addcslashes(serialize($datalist), '\\\'')."');";
UpdateCache($cachefile,$writedata);
}
//读出数据并显示
if (is_array($datalist)) {
$imgsize = ($maxwidth ? " width='$maxwidth'" : NULL)
.($maxheight ? " height='$maxheight'" : NULL);
foreach ($datalist AS $value) {
echo "document.write(\"<a href='$value[threadlink]'$LinkTarget><img$imgsize src='$value[imgfile]' border='0' alt='"
.($value['description'] ? "$value[description]
" : NULL)
."$value[subject]
$value[author]($value[dateline])
$value[fname]' /></a>\");\r\n";
}
}
} else {
exit("document.write(\"<font color=red>Undefined action.</font>\");");
}
function UpdateCache($cachfile,$data='') {
//写入缓存
global $timestamp,$jscachelife;
if(!$fp = @fopen($cachfile, 'wb')) {
exit("document.write(\"Unable to write to cache file!<br>Please chmod ./forumdata/cache to 777 and try again.\");");
}
$fp = @fopen($cachfile, 'wb');
@fwrite($fp, "<?php\r\nif(!defined('IN_DISCUZ')) exit('Access Denied');\r\n\$expiration='".($timestamp + $jscachelife)."';\r\n".$data."\r\n?>");
@fclose($fp);
}
function DigestLevel($digest) {
$digest = intval($digest);
$digest = sprintf("%04d", decbin($digest));
$digest = "$digest";
$digest_filed = '';
$digest_filed .= $digest[0] == 1 ? 1 : '';
$digest_filed .= $digest[1] == 1 ? 2 : '';
$digest_filed .= $digest[2] == 1 ? 3 : '';
$digest_filed .= $digest[3] == 1 ? 0 : '';
return ' AND `digest` IN (\''.str_replace('_', '\',\'', substr(chunk_split($digest_filed,1,"_"),0,-1)).'\')';
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -