📄 ikonboard.cgi
字号:
#!/usr/bin/perl
#############################################################
# Ikonboard v2.1
# Copyright 2000 Ikondiscussion.com - All Rights Reserved
# Ikondiscussion is a trademark of Ikondiscussion.com
#
# Software Distributed by: Ikondiscussion.com
# Visit us online at http://www.ikondiscussion.com
# Email us on boards@ikondiscussion.com
#
# All files written by Matthew Mecham
#############################################################
#use CGI::Carp "fatalsToBrowser"; # Output errors to browser
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; # Kill redundant headers
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
};
if ($@) {
print header(-charset=>"gb2312"); print start_html(-title=>"ib2000 出错!");
print "不能够找到文件:$@\n如果您使用的是 Windows 类操作系统,请在每一个程序中更改 require 的设置,填入绝对路径!";
print end_html; exit;
}
$|++; # Unbuffer the output
#################--- Begin the program ---###################
$thisprog = "ikonboard.cgi";
$query = new CGI;
$action = $query->param('action');
$inmembername = cookie("amembernamecookie");
$inpassword = cookie("apasswordcookie");
if ($inmembername eq "") {
$inmembername = "客人";
}
else {
&getmemberstime("$inmembername");
&getlastvisit;
}
if ($action eq "resetall") {
$filetoopen = "$ikondir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "无法定位所需文件!";
flock(FILE, 2) if ($OS_USED eq "Unix");
@forums = <FILE>;
close(FILE);
$currenttime = time;
foreach (@forums) { #start foreach @forums
($tempno, $trash) = split(/\|/,$_);
$lvisit .= "$tempno-$currenttime--";
}
$boardurltemp =$boardurl;
$boardurltemp =~ s/http\:\/\/(\S+?)\/(.*)/\/$2/;
$cookiepath = $boardurltemp;
$cookiepath =~ s/$thisprog//sg;
$cookie = cookie(-name => "lastvisit",
-value => "$lvisit",
-path => "$cookiepath",
-expires => "+30d");
$tempcookie = cookie(-name => "templastvisit",
-value => "$lvisit",
-path => "$cookiepath");
print header(-cookie =>[$cookie, $tempcookie], -charset=>"gb2312");
}
&title;
require "$ikondir" . "data/boardstats.cgi";
### Set up the variables for the last registered Member
$cleanlastregistered = $lastregisteredmember;
$cleanlastregistered =~ y/ /_/;
$cleanlastregistered = qq~<a href="$profileprog?action=show&member=$cleanlastregistered" target=_blank>$lastregisteredmember</a>~;
### Set up the user's inbox status
if ($inmembername eq "客人") {
$inboxstatus = qq~<font face="$font" color=$forumfontcolor align=center>你必须<a href="$registerprog">注册</a>并<a href="$loginprog">登陆</a>后才能查看你的短消息信箱信息。</font>~;
$inboximg = qq~<img src="$imagesurl/images/inboxnologin.gif" width=16 height=16 alt="你没有登陆!">~;
}
if ($inmembername ne "客人") {
$memberfilename = $inmembername;
$memberfilename =~ s/ /\_/g;
$filetoopen = "$ikondir". "messages/$memberfilename" . "_msg.cgi";
open (FILE, "$filetoopen");
@allmessages = <FILE>;
close (FILE);
$totalmessages = @allmessages;
$unread = 0;
foreach (@allmessages) {
($from, $readstate, $date, $messagetitle, $message) = split(/\|/,$_);
if ($readstate eq "no") {
$unread++;
}
}
$filetoopen = "$ikondir". "messages/$memberfilename" . "_out.cgi";
open (FILE, "$filetoopen");
@allmessages = <FILE>;
close (FILE);
$totalmessagesout = @allmessages;
if (($unread > "0")&&($newmsgpop eq "on")) {$newmsgpopup = qq~<script language="JavaScript">JavaScript:PopWindow()</script>~;}
else { undef$newmsgpopup; }
if ($unread eq "0") {
$inboximg = qq~<img src="$imagesurl/images/inboxnonew.gif" width=16 height=16 ALT="没有新的短消息">~;
$inboxstatus = qq~<font face="$font" color=$forumfontcolor align=center>目前您没有新的短消息。<a href="$boardurl/messanger.cgi?action=inbox" target=_blank>短消息收件箱</a>中共有 <b>$totalmessages</b> 条信息,<a href="$boardurl/messanger.cgi?action=outbox" target=_blank>短消息发件箱</a>中共有 <b>$totalmessagesout</b> 条信息。</font>~; }
else { $inboximg = qq~<img src="$imagesurl/images/inboxnew.gif" width=16 height=16 alt="有新的短消息">~;
$inboxstatus = qq~<font face="$font" color=$forumfontcolor align=center>目前您有 <a href="$boardurl/messanger.cgi?action=inbox" target=_blank><b><font color=$fonthighlight>$unread</font></a></b> 条新的短消息</a>。 <a href="$boardurl/messanger.cgi?action=inbox" target=_blank>短消息收件箱</a>中共有 <b>$totalmessages</b> 条信息,<a href="$boardurl/messanger.cgi?action=outbox" target=_blank>短消息发件箱</a>中共有 <b>$totalmessagesout</b> 条信息。</font>~;
}
$inboxstatus = qq~$inboxstatus <font face="$font" color=$fonthighlight>注意,请及时删除过期短消息</font>~ if (($totalmessages + $totalmessagesout) >= 15);
}
#------- HTML
$output .= qq~
<!-- Cgi-bot Begin Board logo and navigation -->
$newmsgpopup
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth align=center>
<tr>
<td width=30% rowspan=2 valign=top><img src="$imagesurl/images/$boardlogo" border=0></td>
<td valign=bottom align=right><font face="$font" color=$fontcolormisc>
热烈欢迎新会员 "$cleanlastregistered" 的加入。 [<a href="memberlist.cgi?a=5" target=_blank>新进会员</a>] <br>
共有 <a href="memberlist.cgi?a=3" target=_blank><b>$totalmembers</b></a> 名注册会员、<b>$totalthreads</b> 篇主题、<b>$totalposts</b> 篇回复 <br>
</td>
</tr>
</table>
<br><br>
<!-- Cgi-bot End Board logo and navigation -->
~;
#------- END OF HTML
if ($announcements eq 'yes') {
my $filetoopen = "$ikondir" . "data/news.cgi";
if (-e $filetoopen) {
openFILE(-FH=>'FILE',-FN=>"$filetoopen",-MD=>'r');
my @announcementdata = <FILE>;
close(FILE);
my $totalannouncements = @announcementdata;
($title, $dateposted, $trash) = split(/\|/, $announcementdata[0]);
}
else { $dateposted = time; $title = '当前没有公告'; }
my $dateposted = $dateposted + ($timedifferencevalue*3600) + ($timezone*3600);
$dateposted = &longdate("$dateposted");
$announcetemp1=qq~<img src="$imagesurl/images/announce.gif" border=0 alt="公告!公告!不可不看!" width=16 height=16>~;
$announcetemp2=qq~<b><a href="$boardurl/$announceprog" target=_blank>$title</a></b> ($dateposted)~;
}
#------- HTML
$output .= qq~
<table cellpadding=1 cellspacing=0 border=0 width=$tablewidth align=center>
<!-- Cgi-Bot Announcements from $dateposted -->
<tr>
<td align=center width=2 valign=middle>
</td>
<td align=center width=34 valign=middle>
$announcetemp1
</td>
<td valign=middle align=left>
<font face="$font" color=$forumfontcolor>
$announcetemp2
</font>
</td>
<td align=center width=20 valign=middle>
<img src="$imagesurl/images/team.gif" border=0 width=16 height=16 alt="显示管理团队名册">
</td>
<td align=left valign=middle width=70>
<font face="$font" color=$forumfontcolor>
<a href="team.cgi" target=_blank>管理团队</a>
</font>
</td>
<td align=center width=20 valign=middle>
<img src="$imagesurl/images/userlist.gif" border=0 width=16 height=16 alt="显示用户列表">
</td>
<td align=left valign=middle width=70>
<font face="$font" color=$forumfontcolor>
<a href="memberlist.cgi?a=4" target=_blank>用户列表</a>
</font>
</td>
<td align=center width=20 valign=middle>
<img src="$imagesurl/images/top.gif" border=0 width=16 height=16 alt="显示发贴量排名">
</td>
<td align=left valign=middle width=60>
<font face="$font" color=$forumfontcolor>
<a href="memberlist.cgi?a=1" target=_blank>发贴量排名</a>
</font>
</td>
<td align=center width=4 valign=middle>
</td>
</tr>
</table>
<!-- Cgi-bot End of announcements -->
~;
#------- END OF HTML
$output .= qq~
<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>
<td bgcolor=$titlecolor width=26 align=center><font face="$font" color=$titlefontcolor><b>状态</b></font></td>
<td bgcolor=$titlecolor width=* align=center><font face="$font" color=$titlefontcolor><b>论坛名称</b></font></td>
<td bgcolor=$titlecolor width=74 align=center><font face="$font" color=$titlefontcolor><b>版主</b></font></td>
<td bgcolor=$titlecolor width=26 align=center><font face="$font" color=$titlefontcolor><b>主题</b></font></td>
<td bgcolor=$titlecolor width=26 align=center><font face="$font" color=$titlefontcolor><b>回复</b></font></td>
<td bgcolor=$titlecolor width=158 align=center><font face="$font" color=$titlefontcolor><b>最后更新</b></font></td>
<td bgcolor=$titlecolor width=26 align=center><font face="$font" color=$titlefontcolor><b>收藏</b></font></td>
</tr>
~;
### Open up the allforums file.
$filetoopen = "$ikondir" . "data/allforums.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "你是不是没有建立过论坛呀,快去论坛管理中心建立!";
@forums = <FILE>;
close(FILE);
foreach $forum (@forums) { #start foreach @forums
chomp $forum;
($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic) = split(/\|/,$forum);
$rearrange = ("$categoryplace|$category|$forumname|$forumdescription|$forummoderator|$htmlstate|$idmbcodestate|$privateforum|$startnewthreads|$lastposter|$lastposttime|$threads|$posts|$forumgraphic|$forumid");
push (@rearrangedforums, $rearrange);
} # end foreach (@forums)
@finalsortedforums = sort numerically(@rearrangedforums);
foreach $sortedforums (@finalsortedforums) { #start foreach @finalsortedforums
($categoryplace, $category, $forumname, $forumdescription, $forummoderator, $htmlstate, $idmbcodestate, $privateforum, $startnewthreads, $lastposter, $lastposttime, $threads, $posts, $forumgraphic, $forumid) = split(/\|/,$sortedforums);
if ($forummoderator) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -