📄 delpost.cgi
字号:
}
}
close(FILE);
}
&winunlock($filetomake) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
my $dirtoopen2 = "$imagesdir" . "usr/$inforum";
@oldinpostno=reverse sort @oldinpostno;
foreach $pno(@oldinpostno){
$pno--;
opendir (DIR, "$dirtoopen2");
@dirdata = readdir(DIR);
closedir (DIR);
@files=grep(/^$inforum\_$intopic\_$pno/,@dirdata);
chomp @files;
if($#files >= 0){
foreach $file(@files){
unlink ("$dirtoopen2/$file");
}
}
for(my $i=$pno+1;$i<$tt;$i++){
@filetorename=grep(/^$inforum\_$intopic\_$i/,@dirdata);
if($#filetorename >= 0){
($filename,$fileext)=split(/\./,$filetorename[0]);
$ii=$i-1;
rename ("${imagesdir}usr/$inforum/$inforum\_$intopic\_$i.$fileext","${imagesdir}usr/$inforum/$inforum\_$intopic\_$ii.$fileext");
}
}
}
$filetoopen = "$lbdir" . "boarddata/list$inforum.cgi";
&winlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
$linetokeep = <FILE>;
close(FILE);
&winunlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
chomp $linetokeep;
($topicid, $topictitle, $trash, $trash, $trash, $trash, $lastforumposter1, $trash, $lastforumposter, $lastforumpostdate) = split(/\t/,$linetokeep);
chomp $forumlastposter;
chomp $forumlastpostdate;
### Adjust the variables in the Forums Summary Page.
$filetoopen = "$lbdir" . "data/allforums.cgi";
&winlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
@allforums = grep(/^[0-9]+\t/,<FILE>);
close(FILE);
@forumline = grep(/^$inforum\t/,@allforums);
($forumid, $category, $categoryplace, $forumname, $forumdescription, $forummoderator ,$htmlstate ,$idmbcodestate ,$privateforum, $startnewthreads ,$lastposter ,$lastposttime, $threads, $posts, $forumgraphic, $ratings, $misc,$forumpass,$hiddenforum,$indexforum,$teamlogo,$teamurl, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/,$forumline[0]);
$posts-=$delcount;
$lastforumposter = $lastforumposter1 if ($lastforumposter eq "");
$lastforumpostdate = "$lastforumpostdate\%\%\%$topicid\%\%\%$topictitle";
$newforumline="$forumid\t$category\t$categoryplace\t$forumname\t$forumdescription\t$forummoderator\t$htmlstate\t$idmbcodestate\t$privateforum\t$startnewthreads\t$lastforumposter\t$lastforumpostdate\t$threads\t$posts\t$forumgraphic\t$ratings\t$misc\t$forumpass\t$hiddenforum\t$indexforum\t$teamlogo\t$teamurl\t$fgwidth\t$fgheight\t$miscadd3\t$miscadd4\t$miscad5\t";
$filetomake = "$lbdir" . "data/allforums.cgi";
if (open(FILE, ">$filetomake")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $forumline(@allforums){
chomp $forumline;
($tempfid,undef) = split(/\t/,$forumline);
if($tempfid == $inforum){
print FILE "$newforumline\n";
}else{
print FILE "$forumline\n";
}
}
close(FILE);
}
&winunlock($filetomake) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
require "$lbdir" . "data/boardstats.cgi";
$filetomake = "$lbdir" . "data/boardstats.cgi";
my $filetoopens = &lockfilename($filetomake);
if (!(-e "$filetoopens.lck")) {
$totalposts-=$delcount;
&winlock($filetomake) if ($OS_USED eq "Nt");
if (open(FILE, ">$filetomake")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
print FILE "\$lastregisteredmember = \'$lastregisteredmember\'\;\n";
print FILE "\$totalmembers = \'$totalmembers\'\;\n";
print FILE "\$totalthreads = \'$totalthreads\'\;\n";
print FILE "\$totalposts = \'$totalposts\'\;\n";
print FILE "\n1\;";
close (FILE);
}
&winunlock($filetomake) if ($OS_USED eq "Nt");
}
&mischeader("删除回复");
$relocurl = "topic.cgi?forum=$inforum&topic=$intopic";
$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 align=center><font color=$fontcolormisc><b>已删除 <font color=$fonthighlight>$delcount</font> 篇回复,请务必刷新贴子页面</b></font></td></tr>
<tr>
<td bgcolor=$miscbackone><font color=$fontcolormisc>
具体情况:
<ul>
<li><a href="topic.cgi?forum=$inforum&topic=$intopic">返回主题</a>
<li><a href="forums.cgi?forum=$inforum">返回论坛</a>
<li><a href="leoboard.cgi">返回论坛首页</a>
</ul>
</tr>
</td>
</table></td></tr></table>
<meta http-equiv="refresh" content="3; url=$relocurl">
~;
} # end if clear to edit
else { &error("删除回复&不是原作者、论坛管理员!"); }
} # end subdelete
sub movetopic {
&mischeader("移动主题");
@intopic=split(/ /,$intopic);
$thismovetopic=@intopic;
if(($thismovetopic > $maxmoveonce) && ($membercode ne "ad")){ &error("移动主题&批量移动帖子会大量消耗系统资源,每次只能移动 $maxmoveonce 篇帖子!"); }
$cleartomove = "no";
if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartomove = "yes"; }
if (($membercode eq 'smo') && ($inpassword eq $password)) { $cleartomove = 'yes'; }
if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartomove = "yes"; }
unless ($cleartomove eq "yes") { $cleartomove = "no"; }
if ($cleartomove eq "no") { &error("移动主题&您不是坛主或版主,或者您的密码错误!"); }
if (($cleartomove eq "yes") && ($checked eq "yes") && ($movetoid)) {
if ($movetopicname eq "on") { $movetopicname=($indeletepost eq "yes")?"on":"off"; }
if ($movetoid == $inforum) { &error("移动主题&不允许在同个论坛上移动主题!"); }
my $filetoopen = "${lbdir}forum$inforum/foruminfo.cgi";
open(FILE, "$filetoopen");
my $forums = <FILE>;
close(FILE);
(my $trash, $trash, $trash, $oldforumname, $trash) = split(/\t/,$forums);
my $filetoopen = "${lbdir}forum$movetoid/foruminfo.cgi";
open(FILE, "$filetoopen");
my $forums = <FILE>;
close(FILE);
(my $trash, $trash, $trash, $newforumname, $trash) = split(/\t/,$forums);
opendir (DIR, "${imagesdir}usr/$inforum");
@files = readdir(DIR);
closedir (DIR);
$inpostaddon = "<p>" if ($inpost ne "");
if ($movetopicname eq "on") {
$moveinfoold = qq~此贴已被管理员$inmembername转移至: <a href=\"forums.cgi?forum=$movetoid\" target=\"_self\">$newforumname</a>~;
$moveinfonew = qq~此贴转移自: <a href=\"forums.cgi?forum=$inforum\" target=\"_self\">$oldforumname</a>~;
}
else { $moveinfonew = ""; $moveinfoold = ""; }
my @inforumwrite;
my @moveforumwrite;
undef $newthreadnumber;
foreach $intopic (@intopic) {
$intopic =~ s/\W//isg;
$currenttime = time;
if ($newthreadnumber eq "") {
if (open(FILE, "${lbdir}boarddata/lastnum$movetoid.cgi")) {
$newthreadnumber = <FILE>;
close(FILE);
chomp $newthreadnumber;
$newthreadnumber ++;
}
}
else { $newthreadnumber ++; }
unless ((!(-e "${lbdir}forum$movetoid/$newthreadnumber.pl"))&&($newthreadnumber =~ /^[0-9]+$/)) {
opendir (DIR, "${lbdir}forum$movetoid");
@sorteddirdata = readdir(DIR);
closedir (DIR);
@sorteddirdata = grep(/.thd.cgi$/,@sorteddirdata);
@sorteddirdata = sort {$b <=> $a} (@sorteddirdata);
$highestno = $sorteddirdata[0];
undef @sorteddirdata;
$highestno =~ s/.thd.cgi$//;
$newthreadnumber = $highestno + 1;
}
$myinpost = qq~***** 版主模式 *****<p>$inpost$inpostaddon该贴子是管理员从<a href=forums.cgi?forum=$inforum>$oldforumname</a>转移过来的!~;
$newinpost = qq~***** 版主模式 *****<p>$inpost$inpostaddon<a href=topic.cgi?forum=$movetoid&topic=$newthreadnumber>该贴子已被管理员转移,请点击这里查看</a>~;
$myinpost="$inmembername\t$topictitle\t$ENV{'REMOTE_ADDR'}\tyes\tyes\t$currenttime\t$myinpost\t$inposticon\t\n";
open (ENT, "${lbdir}forum$inforum/$intopic.pl");
$in = <ENT>;
close (ENT);
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $lastinposticon,$inposttemp) = split(/\t/,$in);
$threadposts ++ if ($movetopicname eq "on");
if ($moveinfonew ne "") {
$topicdescription = $moveinfonew;
}
if ($movetopicname eq "on") {
if (open(FILE, ">${lbdir}forum$movetoid/$newthreadnumber.pl")) {
$moveforumwrite = "$newthreadnumber\t$topictitle\t$topicdescription\t$threadstate\t$threadposts\t$threadviews\t$startedby\t$startedpostdate\t$inmembername\t$currenttime\t$lastinposticon\t***** 版主模式 *****\t";
print FILE $moveforumwrite;
close(FILE);
}
push (@moveforumwrite, "$moveforumwrite");
}
else {
$moveforumwrite = "$newthreadnumber\t$topictitle\t$topicdescription\t$threadstate\t$threadposts\t$threadviews\t$startedby\t$startedpostdate\t$lastposter\t$currenttime\t$lastinposticon\t$inposttemp\t";
push (@moveforumwrite, "$moveforumwrite");
}
$filetoopen = "$lbdir" . "forum$inforum/$intopic.thd.cgi";
&winlock($filetoopen) if ($OS_USED eq "Nt");
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
@oldforummessages = <FILE>;
close(FILE);
&winunlock($filetoopen) if ($OS_USED eq "Nt");
$filetomake = "$lbdir" . "forum$movetoid/$newthreadnumber.thd.cgi";
if (open(FILE, ">$filetomake")) {
foreach (@oldforummessages) {
chomp $_;
print FILE "$_\n" if ($_ ne "");
}
print FILE "$myinpost" if ($movetopicname eq "on");
close(FILE);
}
copy("${lbdir}forum$inforum/$intopic.mal.pl", "${lbdir}forum$movetoid/$newthreadnumber.mal.pl") if (-e "${lbdir}forum$inforum/$intopic.mal.pl");
copy("${lbdir}forum$inforum/$intopic.poll.cgi", "${lbdir}forum$movetoid/$newthreadnumber.poll.cgi") if (-e "${lbdir}forum$inforum/$intopic.poll.cgi");
copy("${lbdir}forum$inforum/rate$intopic.file.pl", "${lbdir}forum$movetoid/rate$newthreadnumber.file.pl") if (-e "${lbdir}forum$inforum/rate$intopic.file.pl");
copy("${lbdir}forum$inforum/rateip$intopic.file.pl","${lbdir}forum$movetoid/rateip$newthreadnumber.file.pl") if (-e "${lbdir}forum$inforum/rateip$intopic.file.pl");
@files1 = grep(/^$inforum\_$intopic\./,@files);
$files1 = @files1;
if ($files1 > 0) {
foreach (@files1) {
(my $name,my $ext) = split(/\./,$_);
copy("${imagesdir}usr/$inforum/$name.$ext","${imagesdir}usr/$movetoid/$movetoid\_$newthreadnumber\.$ext");
}
}
@files1 = grep(/^$inforum\_$intopic\_/,@files);
$files1 = @files1;
if ($files1 > 0) {
foreach (@files1) {
(my $name,my $ext) = split(/\./,$_);
(my $name1,my $name2,my $name3) = split(/\_/,$name);
copy("${imagesdir}usr/$inforum/$name.$ext","${imagesdir}usr/$movetoid/$movetoid\_$newthreadnumber\_$name3\.$ext");
}
}
$newthreadnumber ++;
if (open(FILE, ">${lbdir}boarddata/lastnum$movetoid.cgi")) {
print FILE $newthreadnumber;
close(FILE);
}
#### 建立好了新文件
if ($inleavemessage eq "yes") { # 保留原来的帖子,处理原来帖子增加最后一条数据
$filetoopen = "$lbdir" . "forum$inforum/$intopic.thd.cgi";
if (-e $filetoopen) {
&winlock($filetoopen) if ($OS_USED eq "Nt");
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
@allmessages = <FILE>;
close(FILE);
if (open(FILE, ">$filetoopen")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach (@allmessages) {
chomp $_;
print FILE "$_\n";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -