📄 forumoptions.cgi
字号:
</td>
</table></td></tr></table>
~;
} else {#Next-Hack
if ($movetoid == $inforum) { &error("移动主题&不允许在同一论坛上移动!"); }
if (-e "${lbdir}boarddata/jinghua$inforum.cgi") {
open(FILE, "${lbdir}boarddata/jinghua$inforum.cgi");
my @jhdatas = <FILE>;
close(FILE);
$jhdata = join("\_",@jhdatas);
$jhdata = "\_$jhdata\_";
$jhdata =~ s/\W//isg;
}
$currenttime = time;
$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");
@forums = <FILE>;
close(FILE);
&winunlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
foreach $forumline (@forums) { #start foreach @forums
($tempno, $trash) = split(/\t/,$forumline);
if ($inforum eq $tempno) {
($trash, $trash, $trash, $oldforumname, $trash) = split(/\t/,$forumline);
last;
}
}
foreach $forumline (@forums) { #start foreach @forums
($tempno, $trash) = split(/\t/,$forumline);
if ($movetoid eq $tempno) {
($trash, $trash, $trash, $newforumname, $trash) = split(/\t/,$forumline);
last;
}
}
$moveinfo = qq~此贴转移自: <a href=\"forums.cgi?forum=$inforum\" target=\"_self\">$oldforumname</a>~;
$filetoopen = "$lbdir" . "boarddata/lastnum$movetoid.cgi";
if (-e $filetoopen) {
&winlock($filetoopen) if ($OS_USED eq "Nt");
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
$newthreadnumber = <FILE>;
close(FILE);
chomp $newthreadnumber;
$newthreadnumber ++;
}
$dirtoopen2 = "$imagesdir" . "usr/$inforum";
opendir (DIR, "$dirtoopen2");
@dirdata2 = readdir(DIR);
closedir (DIR);
@files = grep(/^$inforum\_/,@dirdata2);
$dirtoopen = "$lbdir" . "forum$inforum";
opendir (DIR, "$dirtoopen");
my @dirdata = readdir(DIR);
closedir (DIR);
@entry = grep(/\.thd\.cgi$/,@dirdata);
foreach (@entry) {
(my $topicid, my $tr) = split(/\./,$_);
next if ($jhdata =~ /\_$topicid\_/);
$file1 = "$lbdir" . "forum$inforum/$topicid.thd.cgi";
open (TMP1, "$file1");
flock(TMP1, 1) if ($OS_USED eq "Unix");
my @tmp = <TMP1>;
close (TMP1);
my $tmp1 = $tmp[-1];
(my $no, my $no, my $no, my $no, my $no, my $lastpostdate, my $no, $no) = split(/\t/,$tmp1);
$currenttime = time;
$threadagelimit = $currenttime - $prunedays * 86400;
if ($lastpostdate < $threadagelimit) {
&MoveTopic("$topicid");
$totaltopics_moved++;
}
}
my $truenumber = rebuildLIST(-Forum=>"$inforum");
($tpost,$treply) = split (/\|/,$truenumber);
&winlock($filetoopen) if ($OS_USED eq "Nt");
if (open(FILE, ">$filetoopen")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $forum (@allforums) { #start foreach @forums
chomp($forum);
next if ($forum eq "");
($tempno, $trash) = split(/\t/,$forum);
next if ($tempno !~ /^[0-9]+$/);
if ($inforum eq $tempno) {
($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/,$forum);
print FILE "$forumid\t$category\t$categoryplace\t$forumname\t$forumdescription\t$forummoderator\t$htmlstate\t$idmbcodestate\t$privateforum\t$startnewthreads\t$lastforumposter\t$lastforumpostdate\t$tpost\t$treply\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\n";
open(INFOFILE,">${lbdir}forum$forumid/foruminfo.cgi");
print FILE "$forumid\t$category\t$categoryplace\t$forumname\t$forumdescription\t$forummoderator\t$htmlstate\t$idmbcodestate\t$privateforum\t$startnewthreads\t$lastforumposter\t$lastforumpostdate\t$tpost\t$treply\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\n";
close(INFOFILE);
}
else { print FILE "$forum\n"; }
}
close(FILE);
}
open(FILE, "$filetoopen");
flock(FILE, 1) if ($OS_USED eq "Unix");
@allforums = <FILE>;
close(FILE);
&winunlock($filetoopen) if ($OS_USED eq "Nt");
my $truenumber = rebuildLIST(-Forum=>"$movetoid");
($tpost,$treply) = split (/\|/,$truenumber);
&winlock($filetoopen) if ($OS_USED eq "Nt");
if (open(FILE, ">$filetoopen")) {
flock(FILE, 2) if ($OS_USED eq "Unix");
foreach $forum (@allforums) { #start foreach @forums
chomp($forum);
next if ($forum eq "");
($tempno, $trash) = split(/\t/,$forum);
next if ($tempno !~ /^[0-9]+$/);
if ($movetoid eq $tempno) {
($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/,$forum);
print FILE "$forumid\t$category\t$categoryplace\t$forumname\t$forumdescription\t$forummoderator\t$htmlstate\t$idmbcodestate\t$privateforum\t$startnewthreads\t$lastforumposter\t$lastforumpostdate\t$tpost\t$treply\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\n";
open(INFOFILE,">${lbdir}forum$movetoid/foruminfo.cgi");
print FILE "$forumid\t$category\t$categoryplace\t$forumname\t$forumdescription\t$forummoderator\t$htmlstate\t$idmbcodestate\t$privateforum\t$startnewthreads\t$lastforumposter\t$lastforumpostdate\t$tpost\t$treply\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\n";
close(INFOFILE);
}
else { print FILE "$forum\n"; }
}
close(FILE);
}
&winunlock($filetoopen) if ($OS_USED eq "Nt");
if (! $totaltopics_moved) { $totaltopics_moved = "0"; }
$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>共移动主题:$totaltopics_moved 篇
<li><a href="forums.cgi?forum=$inforum">返回原论坛</a>
<li><a href="forums.cgi?forum=$movetoid">返回新论坛</a>
<li><a href="leoboard.cgi">返回论坛首页</a>
</ul>
</tr>
</td>
</table></td></tr></table>
~;
}#Next-Hack
}
else {
&mischeader("批量管理");
if ((($membercode eq "ad") ||($membercode eq 'smo'))&& ($inpassword eq $password)) { $cleartoedit = "yes"; }
if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
unless ($cleartoedit eq "yes") { $cleartoedit = "no"; }
if ($cleartoedit eq "no" && $checked eq "yes") {&error("使用批量管理&您不是本论坛坛主、管理员或是您的密码输入错误!"); }
$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");
@forums = <FILE>;
close(FILE);
&winunlock($filetoopen) if (($OS_USED eq "Unix")||($OS_USED eq "Nt"));
$jumphtml .= "<option value=\"\">选择一个论坛\n</option>";
$a=0;
foreach my $forum (@forums) { #start foreach @forums
$a = sprintf("%09d",$a);
chomp $forum;
next if ($forum eq "");
(my $forumid, my $category, my $categoryplace, my $forumname, my $forumdescription, my $tmp , $tmp , $tmp , $tmp, $tmp , $tmp , $tmp, $tmp, $tmp, $tmp, $tmp, $tmp, $tmp,my $hiddenforum,$tmp,$tmp,$tmp, $fgwidth, $fgheight, $miscadd3, $miscadd4, $miscad5) = split(/\t/,$forum);
next if ($forumid !~ /^[0-9]+$/);
next if ($categoryplace !~ /^[0-9]+$/);
$categoryplace = sprintf("%09d",$categoryplace);
$rearrange = ("$categoryplace\t$a\t$category\t$forumname\t$forumdescription\t$forumid\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");
push (@rearrangedforums, $rearrange);
$a++;
}
@finalsortedforums = sort (@rearrangedforums);
foreach my $sortedforums (@finalsortedforums) {
(my $categoryplace, my $a, my $category, my $forumname, my $forumdescription, my $forumid, my $forumgraphic, my $ratings, my $misc, my $forumpass, my $hiddenforum, my $indexforum,my $teamlogo,my $teamurl,my $fgwidth,my $fgheight,my $miscadd3,my $miscadd4,my $miscad5) = split(/\t/,$sortedforums);
$categoryplace = sprintf("%01d",$categoryplace);
if ($categoryplace ne $lastcategoryplace) {
$jumphtml .= "<option value=\"\" style=background-color:$titlecolor>╋$category\n</option>";
}
if ($hiddenforum eq "yes"){ $hidden="(隐含)" ; }else{ $hidden=""; }
$child=($category =~/^childforum-[0-9]+/)?" |":"";
$jumphtml .= "<option value=\"$forumid\">$child |-$forumname$hidden\n</option>" if (($disphideboard eq "yes")||($hidden eq "")||($membercode eq "ad")||($membercode eq "smo")||($membercode eq "cmo")||($membercode eq "mo"));
$lastcategoryplace = $categoryplace;
}
$jumphtml .= qq~</select>\n~;
$dirtoopen = "$lbdir" . "forum$inforum";
opendir (DIR, "$dirtoopen");
my @dirdata = readdir(DIR);
closedir (DIR);
@entry = grep(/\.thd\.cgi$/,@dirdata);
@entry = sort numerically(@entry);
$entry = @entry;
open(FILEEN, ">${lbdir}boarddata/temp$inforum.cgi");
foreach (@entry) {
chomp $_;
(my $topicid, my $tr) = split(/\./,$_);
print FILEEN "$topicid\n";
}
close (FILEEN);
$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 colspan=2 align=center>
<form action="$thisprog" method="post">
<input type=hidden name="action" value="prune">
<input type=hidden name="checked" value="yes">
<input type=hidden name="forum" value="$inforum">
<font face="$font" color=$fontcolormisc><b>请输入您的详细资料以便进入管理模式[批量管理]</b></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"></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"></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>选择管理的模式</font></td>
<td bgcolor=$miscbackone valign=middle><input type="radio" name="admin" value="delete">删除 <input type="radio" name="admin" value="move">移动</td></tr>
<tr>
<td bgcolor=$miscbackone valign=top><font color=$fontcolormisc><b>转移至:</b>(只对批量移动有效)</font></td>
<td bgcolor=$miscbackone valign=top><font color=$fontcolormisc><select name="movetoid">$jumphtml</select></font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle colspan=2><font face="$font" color=$fontcolormisc><b>一旦您选择删除文章,将不能够恢复!</b><br>下面将删除发表时间超过一定天数外的所有文章。<br>如果您确定这样做,请仔细检查您输入的信息。</font></td></tr>
<tr>
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc>管理多少天以外的文章<br>例如:输入'30',将管理超过 30 天的所有文章。</font></td>
<td bgcolor=$miscbackone valign=middle><input type=text name="prunedays"></td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center>目前本区帖子数:$entry 篇</td></tr>
<tr>
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="submit" value="提 交"></td></tr></form></table></td></tr></table>
</table></td></tr></table>
~;
}
}
else { &error("普通&未指定功能名!"); }
&output(
-Title => "$boardname - 批量管理",
-ToPrint => $output,
-Version => $versionnumber
);
exit;
sub MoveTopic {
$intopic = shift;
do {
$newthreadnumber++;
} while (-e "${lbdir}forum$movetoid/$newthreadnumber.thd.cgi");
open(ENT, "${lbdir}forum$inforum/$intopic.pl");
my $in = <ENT>;
close (ENT);
chomp($in);
my ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $lastinposticon, $inposttemp) = split(/\t/, $in);
if (open(FILE, ">${lbdir}forum$movetoid/$newthreadnumber.pl"))
{
print FILE "$newthreadnumber\t$topictitle\t$moveinfo\t$threadstate\t$threadposts\t$threadviews\t$startedby\t$startedpostdate\t$lastposter\t$lastpostdate\t$lastinposticon\t$inposttemp";
close(FILE);
}
rename("${lbdir}forum$inforum/$intopic.thd.cgi", "${lbdir}forum$movetoid/$newthreadnumber.thd.cgi");
rename("${lbdir}forum$inforum/$intopic.mal.pl", "${lbdir}forum$movetoid/$newthreadnumber.mal.pl") if (-e "${lbdir}forum$inforum/$intopic.mal.pl");
rename("${lbdir}forum$inforum/$intopic.poll.cgi", "${lbdir}forum$movetoid/$newthreadnumber.poll.cgi") if (-e "${lbdir}forum$inforum/$intopic.poll.cgi");
unlink("${lbdir}forum$inforum/$intopic.pl");
my @files1 = grep(/^$inforum\_$intopic\./, @dirdata1);
foreach (@files1)
{
chomp;
my (undef, $ext) = split(/\./, $_);
rename("${imagesdir}usr/$inforum/$_", "${imagesdir}usr/$movetoid/$movetoid\_$newthreadnumber.$ext");
}
my @files1 = grep(/^$inforum\_$intopic\_/, @dirdata1);
foreach (@files1)
{
chomp;
my ($name, $ext) = split(/\./, $_);
my (undef, undef, $postno) = split(/\_/, $name);
rename("${imagesdir}usr/$inforum/$_", "${imagesdir}usr/$movetoid/$movetoid\_$newthreadnumber\_$postno.$ext");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -