📄 announcements.cgi
字号:
$announcementpost=~ s/$bad/$good/isg;
}
}
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo colspan=2 align=center>
<form action="$thisprog" method=post>
<input type=hidden name="action" value="doedit">
<input type=hidden name="number" value="$number">
<font face="$font" color=$fontcolormisc><b>编辑论坛公告</b></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的名称</font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername"0></a></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的密码</font></td>
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword"0></td></tr>
<tr>
<td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc><b>论坛公告标题</b></font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="announcementtitle" value="$announcementtitle"size=60 maxlength=100></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=top width=30%><font face="$font" color=$fontcolormisc><b>论坛公告内容</b><br>请输入您的论坛公告内容。<p>如果使用了字符转换,ib2000 将自动在公告中转换代码字符。</font></td>
<td bgcolor=$miscbackone valign=middle><textarea cols=60 rows=10 name="announcementpost">$announcementpost</textarea></td>
</tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>
<input type=Submit value="递交" name=Submit onClick="return clckcntr();"> <input type="reset" name="Clear"></form>
</td></tr>
~;
} # end action
elsif ($action eq "doedit") {
$currenttime = time;
# Make sure it's got all new lines converted
# Validate user
&getmember("$inmembername");
if ($membercode ne "ad") { print header(-charset=>"gb2312"); &error("使用公告&您不是管理员!"); }
elsif ($inpassword ne $password) { print header(-charset=>"gb2312"); &error("使用公告&您的密码错误!"); }
# Check for blanks.
if ($inannouncementpost eq "") { print header(-charset=>"gb2312"); &error("使用公告&请输入论坛公告内容!"); }
if ($inannouncementtitle eq "") { print header(-charset=>"gb2312"); &error("使用公告&请输入论坛公告标题!"); }
# Get the announcement file
$filetoopen = "$ikondir" . "data/news.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen") or die "无法定位公告文件!" ;
@announcements = <FILE>;
close(FILE);
# Write it back with the new announcement at the top
$count = 0;
$newline = "$inannouncementtitle|$currenttime|$inannouncementpost|$inmembername";
chomp $newline;
$filetoopen = "$ikondir" . "data/news.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, ">$filetoopen") or die "无法定位公告文件!";
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $line (@announcements) {
chomp $line;
if ($count eq $number) {
print FILE "$newline\n";
}
else {
print FILE "$line\n";
}
$count++;
}
close(FILE);
&doend("论坛公告已经被编辑并发表了");
exit;
} # end edit announcement
else { # start last else
&whosonline("$inmembername|公告栏|none|查看公告|");
### start displaying the announcements.
$filetoopen = "$ikondir" . "data/news.cgi";
$filetoopen = &stripMETA($filetoopen);
open(FILE, "$filetoopen");
@announcements = <FILE>;
close(FILE);
$postcountcheck = 0;
$totals = @announcements;
if ($totals eq "0") {
$dateposted = time;
@announcements[0] = qq~当前没有任何公告|$dateposted|请点击这个 <a href="$thisprog?action=add"><img src="$imagesurl/images/a_add.gif" border=0"></a> 图标来发布一个公告(必须是管理员)。<br>当你发布一次公告后,本公告就会自动消失,无需你手动删除!~;
}
foreach $line (@announcements) {
($title, $dateposted, $post, $nameposted) = split(/\|/, $line);
if ($badwords) {
@pairs = split(/\&/,$badwords);
foreach (@pairs) {
($bad, $good) = split(/=/,$_);
chop $good;
$title =~ s/$bad/$good/isg;
$post =~ s/$bad/$good/isg;
}
}
$dateposted = $dateposted + ($timedifferencevalue*3600) + ($timezone*3600);
$dateposted = &dateformat("$dateposted");
$post = &ikoncode("$post");
$post = &doemoticons("$post");
$post = &smilecode("$post");
# Allow HTML
$post =~ s/<\;/\</g;
$post =~ s/>\;/\>/g;
$post =~ s/"\;/\"/g;
if ($count eq "1") {
$postbackcolor = "$postcolorone";
$postfontcolor = "$postfontcolorone";
$count++;
}
else {
$postbackcolor = "$postcolortwo";
$postfontcolor = "$postfontcolortwo";
$count = 1;
}
$post = qq~<p><blockquote>$post</blockquote><p>~;
$adminadd = qq~<a href="$thisprog?action=add"><img src="$imagesurl/images/a_add.gif" border=0"></a>~;
$admindelete = qq~<a href="$thisprog?action=delete&number=$postcountcheck"><img src="$imagesurl/images/a_delete.gif" border=0"></a>~;
$adminedit = qq~<a href="$thisprog?action=edit&number=$postcountcheck"><img src="$imagesurl/images/a_edit.gif" border=0"></a>~;
&getmember("$inmembername");
$output .= qq~
<tr>
<td bgcolor=$titlecolor align=center valign=top><font face="$font" color=$titlefontcolor><b>>> $title <<</b></td></tr>
~;
if ($membercode eq "ad") {
$output .= qq~
<tr>
<td bgcolor=$postbackcolor align=left>$admindelete $adminedit $adminadd</td>
</tr>
~;
}
$nameposted = "未知" if (!$nameposted);
$output .= qq~
<tr>
<td bgcolor="$postbackcolor" valign=top><font face="$font" color=$postfontcolor>
$post
</td>
</tr>
<tr>
<td bgcolor="$postbackcolor" valign=middle>
<table width=100% border="0" cellpadding="0" cellspacing="0">
<tr><td align=left> <font face="$font" color=$postfontcolor><b>发布人</b>: $nameposted</font>
</td><td align=right><font face="$font" color=$postfontcolor><b>发布时间</b>: $dateposted</font>
</tr>
</table>
</td>
</font>
</tr>
~;
$postcountcheck++;
} # end foreach
} # end last else
$output .= qq~</table></td></tr></table>~;
&output(
-Title => "$boardname - 公告",
-ToPrint => $output,
-Version => $versionnumber
);
##############################################################
### Sub route (login)
sub login {
local($url) = @_;
($postto, $therest) = split(/\?/,$url);
@pairs = split(/\&/,$therest);
foreach (@pairs) {
($name, $value)=split(/\=/,$_);
$hiddenvars .= qq~<input type=hidden name="$name" value="$value">\n~;
}
$output .= qq~
<form action="$postto" method="post">$hiddenvars
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><font face="$font" color=$fontcolormisc><b>登陆前请输入管理员的详细信息</b><br>请注意,只有管理员才可以增加、删除、修改论坛公告!</font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的名称</font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername"0></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>请输入您的密码</font></td>
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword"0></td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="submit" value="登 陆"></form></td></tr></table></td></tr></table>
~;
} # end routine
sub doend {
my $action_taken = shift;
$relocurl = "$boardurl/$thisprog";
$output .= qq~
<tr>
<td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc><b>论坛公告</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>
如果你的浏览器没有自动返回论坛,请点击下面的链接直接返回。
<ul>
<li><b>$action_taken</b>
<li><a href="$relocurl">返回论坛公告</a>
<li><a href="$forumsummaryprog">返回论坛首页</a>
</ul>
</tr>
</td>
</table></td></tr></table>
<meta http-equiv="refresh" content="5; url=$relocurl">
~;
&output(
-Title => "$boardname - 公告",
-ToPrint => $output,
-Version => $versionnumber
);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -