⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forumoptions.cgi

📁 一个linux论坛
💻 CGI
📖 第 1 页 / 共 2 页
字号:
            </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 + -