📄 team.cgi
字号:
#!/usr/bin/perl
#############################################################
use CGI qw(:standard); # Saves loads of work
$CGI::POST_MAX=1024 * 150; # limit post data
$CGI::DISABLE_UPLOADS = 1; # Disable uploads
$CGI::HEADERS_ONCE = 1; # Make sure we only have 1 header
eval {
($0 =~ m,(.*)/[^/]+,) and unshift (@INC, "$1");
($0 =~ m,(.*)\\[^\\]+,) and unshift (@INC, "$1");
require "ikon.lib"; # Require ikonboard ()
require "data/progs.cgi"; # Require prog names
require "data/boardinfo.cgi";# Require board info
require "data/styles.cgi"; # Require styles info
require "data/membertitles.cgi";
};
if ($@) {
print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
print end_html; exit;
}
$|++; # Unbuffer the output
#################--- Begin the program ---###################
$maxshowmembers = $maxtopics; ## Change how many team members per page are displayed
$teamscript = "team.cgi";
$query = new CGI;
$inpage = $query -> param ("page");
if ($inpage eq "") { $inpage = 1; }
$inmembername = cookie ("amembernamecookie");
## Online-File auslesen
$filetoopen = "$ikondir" . "data/onlinedata.dat";
open(FILE, "$filetoopen" );
@onlineusers = <FILE>;
close(FILE);
## member files read in, Admins and Mods identify pushed into a list
opendir (DIR, "$ikondir/members");
@files = readdir(DIR);
closedir (DIR);
@memberfiles = grep(/\.cgi$/, @files);
foreach $memberfile (@memberfiles) { # start foreach
open (FILE, "$ikondir/members/$memberfile");
@memberdata = <FILE>;
close (FILE);
foreach $line (@memberdata) {
($filename, $trash) = split (/\./, $memberfile);
@tmpuserdetail = split (/\|/, $line);
chomp @tmpuserdetail;
if ($tmpuserdetail[3] eq ad) {
push (@teamlist, "1|$filename"); }
elsif ($tmpuserdetail[3] eq mo) {
push (@teamlist, "2|$filename"); } } } # end foreach
## calculate the page's number
$totalpages = @teamlist / $maxshowmembers;
($pagenumbers, $decimal) = split (/\./, $totalpages);
if ($decimal > 0) {
$pagenumbers++; }
$page = 1;
$pagedigit = 0;
$pagelinks = qq~Page: ~;
while ($pagenumbers > $pagedigit) { # start while
$pagedigit++;
if ($inpage ne $page) {
$pagelinks .= qq~[<a href="$boardurl/$teamscript?page=$page">$pagedigit</a>] ~; }
else {
$pagelinks .= qq~[$pagedigit] ~; }
$page++; } # end while
if ($totalpages <= 1) {
$pagelinks = qq~本列表只有一页~; }
## calculate the number of the start and final member, those to be displayed on this page
$startmember = ($inpage - 1) * $maxshowmembers;
$endmember = $startmember + $maxshowmembers - 1;
if ($endmember > (@teamlist - 1)) {
$endtopic = @teamlist - 1; }
## Mitglieder-Details auslesen und die Mitglieder Seitenweise darstellen
@teamlist = sort alphabetically (@teamlist);
@teamlist = sort numerically (@teamlist);
foreach $teammember (@teamlist[$startmember ... $endmember]) {
($trash, $teammemberfile) = split (/\|/, $teammember);
chomp $teammemberfile;
open (FILE, "$ikondir/members/$teammemberfile.cgi");
@thismemberdata = <FILE>;
close (FILE);
foreach $memberline (@thismemberdata) {
@userdetail = split (/\|/, $memberline);
chomp @userdetail;
## Definiere die Hintergrund- und Textfarbe f黵 die Zeilen
if ($lastcolor eq $postcolortwo) {
$color = $postcolorone;
$fontcolor = $postfontcolorone; }
else {
$color = $postcolortwo;
$fontcolor = $postfontcolortwo; }
## Registrierdatum
$userdetail[13] = $userdetail[13] + ($userdetail[16] * 3600) + ($timezone * 3600);
$userdetail[13] = &longdate ($userdetail[13]);
## Setze Avatar-Grafiken
if (($avatars eq "on") && ($userdetail[18]) && ($userdetail[18] ne "noavatar")) {
$useravatar = qq~<br><img src="$imagesurl/avatars/$userdetail[18].gif" border=0 width="32" height="32">~; }
else {
$useravatar = ""; }
if ($userdetail[4] >= $mpostmark11) { $mtitle = $mtitle11; $membergraphic = $mgraphic11; }
elsif ($userdetail[4] >= $mpostmark10) { $mtitle = $mtitle10; $membergraphic = $mgraphic10; }
elsif ($userdetail[4] >= $mpostmark9) { $mtitle = $mtitle9; $membergraphic = $mgraphic9; }
elsif ($userdetail[4] >= $mpostmark8) { $mtitle = $mtitle8; $membergraphic = $mgraphic8; }
elsif ($userdetail[4] >= $mpostmark7) { $mtitle = $mtitle7; $membergraphic = $mgraphic7; }
elsif ($userdetail[4] >= $mpostmark6) { $mtitle = $mtitle6; $membergraphic = $mgraphic6; }
elsif ($userdetail[4] >= $mpostmark5) { $mtitle = $mtitle5; $membergraphic = $mgraphic5; }
elsif ($userdetail[4] >= $mpostmark4) { $mtitle = $mtitle4; $membergraphic = $mgraphic4; }
elsif ($userdetail[4] >= $mpostmark3) { $mtitle = $mtitle3; $membergraphic = $mgraphic3; }
elsif ($userdetail[4] >= $mpostmark2) { $mtitle = $mtitle2; $membergraphic = $mgraphic2; }
elsif ($userdetail[4] >= $mpostmark1) { $mtitle = $mtitle1; $membergraphic = $mgraphic1; }
else { $mtitle = $mtitle0; $membergraphic = ""; } #显示默认等级
if ($membergraphic) {
$membergraphic = qq~<img src="$imagesurl/images/$membergraphic" border="0" width=100 height=16>~; }
if ($avatars eq "on") {
if (($userdetail[22])&&($userdetail[23])&&($userdetail[24])) { #自定义头像存在
$useravatar = qq(<br> <img src="$userdetail[22]" border=0 width=$userdetail[23] height=$userdetail[24]>);
}
elsif (($userdetail[18] ne "noavatar") && ($userdetail[18])) {
$useravatar = qq(<br> <img src="$imagesurl/avatars/$userdetail[18].gif" border=0 width=32 height=32>);
}
else { undef $useravatar; }
}
## Setze Mitgliedsstatus
if ($userdetail[3] eq "ad") {
$posterfontcolor = "$adminnamecolor";
$membername = qq~$userdetail[0] <img src="$imagesurl/images/teamad.gif" border=0 alt=此人为坛主 width=16 height=16>~;
$membergraphic = "<img src=\"$imagesurl/images/$admingraphic\" border=\"0\" width=100 height=16>" if ($admingraphic ne "");
$mtitle = $adtitle if ($adtitle ne "");
if (($userdetail[2] eq "member")||($userdetail[2] eq "Member")||($userdetail[2] eq "")) {
$membertitle = qq~<font face="$font" color=$fontcolor>论坛坛主</font>~; }
else {
$membertitle = qq~<font face="$font" color=$fontcolor>$userdetail[2]</font>~; } }
elsif ($userdetail[3] eq "mo") {
$posterfontcolor = "$teamnamecolor";
$membername = qq~$userdetail[0] <img src="$imagesurl/images/teammo.gif" border=0 alt=此人为版主 width=16 height=16>~;
$membergraphic = "<img src=\"$imagesurl/images/$modgraphic\" border=\"0\" width=100 height=16>" if ($modgraphic ne "");
$mtitle = $motitle if ($motitle ne "");
if (($userdetail[2] eq "")||($userdetail[2] eq "Member")||($userdetail[2] eq "member")) {
$membertitle = qq~<font face="$font" color=$fontcolor>论坛版主</font>~; }
else {
$membertitle = qq~<font face="$font" color=$fontcolor>$userdetail[2]</font>~; } }
## Setze letzte Beitrags-Details
($postdate, $posturl, $posttopic) = split(/\%%%/, $userdetail[14]);
if ($postdate ne "没有发表过") {
$postdate = $postdate + ($userdetail[16] * 3600) + ($timezone * 3600);
$lastpostdate = &longdate ("$postdate");
$lastposttime = &shorttime ("$postdate");
$filetoopen = "$ikondir" . "data/badwords.cgi";
open (FILE, "$filetoopen");
$badwords = <FILE>;
close (FILE);
if ($badwords) {
@pairs = split(/\&/,$badwords);
foreach (@pairs) {
($bad, $good) = split(/=/,$_);
chop $good;
$posttopic=~ s/$bad/$good/isg;
}
}
$lastpostdetails = qq~<a href="$posturl">$posttopic</a> ($lastpostdate $lastposttime)~; }
else {
$lastpostdetails = qq~从未发言过~; }
if ($posturl eq "" && $posttopic eq "") {
$lastpostdetails = qq~是发在保密论坛的哟,不给看~; }
## Ist das Mitglied ONLINE oder OFFLINE?
foreach $onlineuser (@onlineusers) {
@onlineuserdetail = split (/\|/, $onlineuser);
chomp @onlineuserdetail;
if ($onlineuserdetail[0] eq $userdetail[0]) {
$online = qq~<IMG SRC="$imagesurl/images/online1.gif" width=15 height=15 border=0 alt="该用户目前在线">~; last; }
else {
$online = qq~<IMG SRC="$imagesurl/images/offline1.gif" width=15 height=15 alt="该用户目前不在线">~; } }
## Mehr Details
if ($userdetail[6] ne "yes") {
$email = "保密"; }
else {
$email = qq~<a href="mailto:$userdetail[5]">$userdetail[5]</a>~; }
if ($userdetail[8] eq "" || $userdetail[8] eq "http://") {
$homepage = "没有"; }
else {
$homepage = qq~<a href="$userdetail[8]" target="_blank">$userdetail[8]</a>~; }
if ($userdetail[9] eq "") {
$aolname = "没有"; }
else {
$aolname = $userdetail[9]; }
if ($userdetail[10] eq "") {
$icqnumber = "没有"; }
else {
$icqnumber = $userdetail[10]; }
## Erstelle Liste der moderierten Foren des Mitglieds
$filetoopen = "$ikondir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "无法定位所需文件!";
flock (FILE,2) if ($OS_USED eq "Unix");
@forumsdata = <FILE>;
close(FILE);
undef @moderatedforums;
foreach $forum (@forumsdata) {
@forumdetail = split (/\|/, $forum);
chomp @forumdetail;
$forumdetail[5] =~ s/\, /\,/gi;
@forummodnames = split(/\,/, $forumdetail[5]);
foreach $name (@forummodnames) {
chomp $name;
if ($name eq $userdetail[0]) {
push (@moderatedforums, "<a href=\"$boardurl/$forumsprog?forum=$forumdetail[0]\">$forumdetail[3]</a> ($forumdetail[1])<br>");
}
}
}
if (!@moderatedforums) {
@moderatedforums = "$userdetail[0] 没有主持任何版块"; }
@moderatedforums = sort alphabetically (@moderatedforums);
## Schreibe HTML in eine Variable
$teamguts .= qq~
<!--Begin Profile for $userdetail[0]-->
<tr bgcolor=$color>
<td valign=top>
<table style="filter:glow(color=$titlecolor,strength=2)">$online <font face="$posternamefont" color="$posterfontcolor"><b>$membername</b></font>
</table>
头衔:$membertitle
<br>$useravatar
<br>$membergraphic
<br>级别:$mtitle</td>
<td valign=top><table cellspacing=0 cellpadding=0 border=0 width=100%>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>注册日期:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>$userdetail[13]</font></td>
</tr>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>最后发言:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>$lastpostdetails</font></td>
</tr>
<tr><td colspan=2><font face="$font"> </font></td></tr>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>电子邮件:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>$email</font></td>
</tr>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>主页:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>$homepage</font></td>
</tr>
<tr><td colspan=2><font face="$font"> </font></td></tr>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>OICQ 号码:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>$aolname</font></td>
</tr>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>ICQ 号码:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>$icqnumber</font></td>
</tr>
<tr><td colspan=2><font face="$font"> </font></td></tr>
<tr>
<td width=25% valign=top><font face="$font" color=$fontcolor>主持板块:</font></td>
<td width=75% valign=top><font face="$font" color=$fontcolor>@moderatedforums</font></td>
</tr>
</table></td>
</tr>~;
@moderatedforums = "";
$lastcolor = $color; } }
&title;
&whosonline("$inmembername|管理团队|none|查看管理人员名单|");
$output .= qq~
<p>
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2>
<img src="$imagesurl/images/$boardlogo" border=0>
</td>
<td valign=top align=left>
<font face="$font" color=$fontcolormisc>
<img src="$imagesurl/images/closedfold.gif" border=0> <a href="$forumsummaryprog">$boardname</a>
<br>
<img src="$imagesurl/images/bar.gif" border=0><img src="$imagesurl/images/openfold.gif" border=0> 管理团队
</td>
</tr>
</table>
<p>
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td>
<table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr bgcolor=$titlecolor>
<td width=25% align=center><font face="$font" color=$titlefontcolor><b>管 理 人 员</b></td>
<td width=75% align=center><font face="$font" color=$titlefontcolor><b>详 细 信 息</b></td>
</tr>
$teamguts
</table></td></tr></table>
<p>
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr>
<td><table cellpadding=6 cellspacing=1 border=0 width=100%>
<tr bgcolor=$menubackground>
<td align=center><font face=宋体 color=$fontcolormisc>$pagelinks</font></td>
</tr>
</table></td>
</tr>
</table>
~;
print header(-charset=>"gb2312");
&output( -Title => "$boardname - 管理团队",
-ToPrint => $output,
-Version => $versionnumber );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -