📄 postings.cgi
字号:
} # end subdelete
###########################
sub editform { # start form
### Grab the post to edit
$filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
open(FILE, "$filetoopen");
@threads = <FILE>;
close(FILE);
$posttoget = $inpostno;
$posttoget--;
($membername, $topictitle, $postipaddress, $showemoticons, $showsignature ,$postdate, $post, $posticon) = split(/\|/, @threads[$posttoget]);
$post =~ s/\<p\>/\n\n/g;
$post =~ s/\<br\>/\n/g;
### Print form
&getforum("$inforum");
&getmember("$inmembername");
if (($allowedentry{$inforum} eq "yes")||($membercode eq "ad")) { $allowed = "yes"; }
if (($privateforum eq "yes") && ($allowed ne "yes")) {
&error("发表&对不起,您不允许在此论坛发表!");
}
$rawpost = $post;
if ($previewfirst eq "yes") {
$rawpost = $inpost;
$rawpost =~ s/\<p\>/\n\n/g;
$rawpost =~ s/\<br\>/\n/g;
&preview;
}
else {
&mischeader("编辑贴子");
}
$helpurl = &helpfiles("阅读标记");
$helpurl = qq~$helpurl<img src="$imagesurl/images/help_b.gif" border=0></a>~;
if ($emoticons eq "on") {
$emoticonslink = qq~<a href="javascript:openScript('$miscprog?action=showsmilies',300,350)">使用表情字符转换</a>~;
$emoticonsbutton =qq~<input type=checkbox name="inshowemoticons" value="yes" checked>您是否希望<b>使用</b>表情字符转换在您的文章中?<br>~;
}
if ($htmlstate eq "on") { $htmlstates = "可用"; } else { $htmlstates = "不可用"; }
if ($idmbcodestate eq "on") { $idmbcodestates = "可用"; } else { $idmbcodestates = "不可用"; }
&whosonline("$inmembername|<a href=\"$forumsprog?forum=$inforum\"><b>$forumname</b></a>|none|编辑<a href=\"$threadprog?forum=$inforum&topic=$intopic\"><b>$topictitle</b></a>|") if ($privateforum ne "yes");
&whosonline("$inmembername|<a href=\"$forumsprog?forum=$inforum\">$forumname</a>(密)|none|编辑保密贴子|") if ($privateforum eq "yes");
$emoticonsurl = qq~$imagesurl/emot~;
$dirtoopen = "$imagesdir" . "emot";
opendir (DIR, "$dirtoopen") or die "表情图片所在目录没有找到: $dirtoopen !";
@dirdata = readdir(DIR);
closedir (DIR);
@emoticondata = grep(/gif$/,@dirdata);
foreach $picture (@emoticondata) {
$smileyname = $picture;
$smileyname =~s/\.gif$//g;
$output .= qq~ <script language="javascript">
function $smileyname() {
document.FORM.inpost.value+=' :$smileyname:'; }
</script> ~;
} #endforeach
if ($badwords) {
@pairs = split(/\&/,$badwords);
foreach (@pairs) {
($bad, $good) = split(/=/,$_);
chop $good;
$rawpost =~ s/$bad/$good/isg;
$topictitle =~ s/$bad/$good/isg;
}
}
$output .= qq~
<form action="$thisprog" method=post name="FORM">
<input type=hidden name="action" value="processedit">
<input type=hidden name="postno" value="$inpostno">
<input type=hidden name="forum" value="$inforum">
<input type=hidden name="topic" value="$intopic">
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
<tr><td>
<table cellpadding=4 cellspacing=1 border=0 width=100%>
<tr>
<td bgcolor=$titlecolor colspan=2><font face="$font" color=$titlefontcolor><B>主题标题</B>: $topictitle</td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc><b>用户名</b></font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername"> <font face="$font" color=$fontcolormisc><a ref="$registerprog">您没有注册?</a></font></td>
</tr><tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc><b>密码</b></font></td>
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword"> <font face="$font" color=$fontcolormisc><a ref="$profileprog?action=lostpass">忘记密码?</a></font></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=top><font face="$font" color=$fontcolormisc><b>当前心情</b><BR><li>将放在贴子的前面<BR><BR>刷新页面可以获得不同的心情图</font></td>
<td bgcolor=$miscbackone valign=top>
~;
####Get the post Icons####
$dirtoopen = "$imagesdir" . "posticons";
opendir (DIR, "$dirtoopen") or die "表情图片所在目录没有找到: $dirtoopen !";
@dirdata = readdir(DIR);
closedir (DIR);
@posticondata = grep(/gif$/,@dirdata);
$tempiconnum=1;
if ($posticon ne "") {
$tempoutput .= qq~<input type=radio value="$posticon" name="posticon" checked><img src="$imagesurl/posticons/$posticon" width=13 height=13 border=0> ~;
$tempiconnum++;
}
foreach $picture (@posticondata) {
if ($tempiconnum > 12) {
$tempiconnum = 1;
$tempoutput .= qq~<BR>~;
}
if ($picture ne $posticon) {
$on=int(rand(3)+1);
if ($on==3) {
$tempoutput .= qq~<input type=radio value="$picture" name="posticon"><img src="$imagesurl/posticons/$picture" width=13 height=13 border=0> ~;
$tempiconnum ++;
}
}
} #endforeach
# $tempoutput =~ s/value=\"$posticon\"/value=\"$posticon\" checked/ if ($posticon eq "");
$rawpost =~ s/\[这个贴子最后由(.+?)编辑\]\n//isg;
$output .= qq~
$tempoutput
</td>
</tr>
<td bgcolor=$miscbackone valign=top><font face="$font" color=$fontcolormisc><b>内容</b><p>
在此论坛中:<li>HTML 标签: <b>$htmlstates</b><li><a href="javascript:openScript('misc.cgi?action=ikoncode',300,350)">ib2000 标签</a>: <b>$idmbcodestates</b><li>贴图标签: <b>$postpicstates</b><li>音乐标签: <b>$postsoundstates</b><li>文字大小: <b>$postfontsizestates</b><li>$emoticonslink</font></td>
<td bgcolor=$miscbackone valign=middle>
$insidejs
<TEXTAREA cols=80 name=inpost rows=12 wrap="soft">$rawpost</TEXTAREA><br>
模式:
<input type="radio" name="mode" value="help" onClick="thelp(1)"> 帮助
<input type="radio" name="mode" value="prompt" CHECKED onClick="thelp(2)"> 完全
<input type="radio" name="mode" value="basic" onClick="thelp(0)"> 基本
</td></tr>
<tr>
<td bgcolor=$miscbackone valign=top colspan=2><font face="$font" color=$fontcolormisc><b>点击表情图即可在贴子中加入相应的表情</B></font><br>
~;
$dirtoopen = "$imagesdir" . "emot";
opendir (DIR, "$dirtoopen") or die "表情图片所在目录没有找到: $dirtoopen !";
@dirdata = readdir(DIR);
closedir (DIR);
@emoticondata = grep(/gif$/,@dirdata);
foreach $picture (@emoticondata) {
$smileyname = $picture;
$smileyname =~ s/\.gif$//g;
$output .= qq~
<a href="javascript:$smileyname();"><img src="$emoticonsurl/$picture" border=0></a>
~;
} #endforeach
$output .= qq~
</td>
</tr>
<tr>
<td bgcolor=$miscbacktwo valign=top><font face="$font" color=$fontcolormisc><b>选项</b><p>$helpurl
</font></td>
<td bgcolor=$miscbacktwo valign=middle><input type=checkbox name="inshowsignature" value="yes" checked>
<font face="$font" color=$fontcolormisc>是否显示您的签名?<br>
$emoticonsbutton
<b>发表之前是否预览?</b><input name="previewfirst" type="radio" value="yes"> 是 <input name="previewfirst" type="radio" value="no" checked> 否
</font></td>
</tr>
<tr>
<td bgcolor=$miscbackone valign=middle align=left valign=middle>
<font face="$font" color=$fontcolormisc><b>管理员选项</b></td>
<td bgcolor=$miscbackone valign=middle align=left valign=middle>
<font face="$font" color=$fontcolormisc>
<input type=checkbox name="deletepost" value="yes">删除此回复?(只有坛主或版主才可以)
</font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle colspan=2 align=center>
<input type=Submit value="发 表" name=Submit> <input type="reset" name="Clear" value="清 除">
</td></form></tr></table></tr></td></table>
~;
} # end edit form
###########################
sub processedit {
$posttoget = $inpostno;
$posttoget--;
$postcountcheck = 0;
$filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
if (-e $filetoopen) {
open(FILE, "$filetoopen") or &error("编辑&这个主题不存在!");
@allthreads = <FILE>;
close(FILE);
}
else { unlink ("$ikondir" . "forum$inforum/$intopic.pl"); &error("编辑&这个主题不存在!可能已经被删除!"); }
($postermembername, $topictitle, $postipaddress, $showemoticons, $showsignature ,$postdate, $post, $posticon) = split(/\|/, @allthreads[$posttoget]);
&getmember("$inmembername");
&moderator;
&getforum("$inforum");
if ($allowedentry{$inforum} eq "yes") { $allowed = "yes"; }
if (($privateforum eq "yes") && ($allowed ne "yes")) {
&error("发表&对不起,您不允许在此论坛发表!");
}
$cleartoedit = "no";
if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
if (($inmembername eq $postermembername) && ($inpassword eq $password)) { $cleartoedit = "yes"; }
unless ($cleartoedit eq "yes") { $cleartoedit eq "no"; }
if ($cleartoedit eq "yes") {
&error("编辑&老大,有你这么发言的吗!") if (($inpost =~ /\w{80,}/)||($inpost =~ /[(!)(~)(·)(#)(¥)(%)(…)(—)(*)(()())(+)(|)(})({)(])([)(“)(:)(;)(‘)(?)(〉)(《)]{40,}/)||($inpost =~ /[\!\~\`\@\#\$\%\^\&\*\(\)\_\+\|\\\=\-\]\[\{\}\'\;\:\"\/\.\,\<\>\?]{80,}/));
$editpostdate = time;
$editpostdate = $editpostdate + ($timezone*3600) + ($timedifferencevalue*3600);
$editpostdate = &dateformat("$editpostdate");
$inpost =~ s/\t//g;
$inpost =~ s/\r//g;
$inpost =~ s/ / /g;
$inpost =~ s/\n\n/\<p\>/g;
$inpost =~ s/\n/\<br\>/g;
# Open the bad word filter
$filetoopen = "$ikondir" . "data/badwords.cgi";
open (FILE, "$filetoopen");
$badwords = <FILE>;
close (FILE);
if ($badwords) {
@pairs = split(/\&/,$badwords);
foreach (@pairs) {
($bad, $good) = split(/=/,$_);
chop $good;
$inpost =~ s/$bad/$good/isg;
}
}
# unless ($membercode eq "ad") {
$inpost = qq~[这个贴子最后由$inmembername在 $editpostdate 编辑]<br><br>$inpost~;
# }
$filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
open(FILE, ">$filetoopen");
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $postline (@allthreads) {
chomp $postline;
if ($postcountcheck eq $posttoget) {
print FILE "$postermembername|$topictitle|$postipaddress|$inshowemoticons|$inshowsignature|$postdate|$inpost|$inposticon|\n";
}
else { print FILE "$postline\n"; }
$postcountcheck++;
}
close(FILE);
&mischeader("编辑贴子");
$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=$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><a href="$threadprog?forum=$inforum&topic=$intopic">返回主题</a>
<li><a href="$forumsprog?forum=$inforum">返回论坛</a>
<li><a href="$forumsummaryprog">返回论坛首页</a>
</ul>
</tr>
</td>
</table></td></tr></table>
~;
} # end if clear to edit
else { &error("编辑贴子&您不是原作者,或者用户名、密码错误!"); }
} # end routine
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -