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

📄 delpost.cgi

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