user-pic

[原创+整理]LeoBBSx多附件添加整理日志

Vote 0 Votes



草草整理一下思路,如果现在再不整理,估计就遥遥无期了。

第一:Hack思路。


1。本Hack彻底改变原LB的附件方式,所有的附件都在帖子里面以[ uploadfile=***]方式存在。
2。上传机制是在$usrfile目录下面建立tmp目录,在此目录下面以用户name分目录存临时上传的文件,可以限制每个人一次上传的个数。(目录程序自动处理)
3,在帖子提交时候,[b]选择插入[/b]的附件被处理。Copy到$usr/$foumid/XX目录下面,并且在帖子里面更新文件名字。
4。改革了附件都放在$usr/$foumid/根目录下面的习惯,在这个目录下面参考用户库再次分目录,使贴图区不在慢如蜗牛。(来自bbser老大的建议)
5。由于存储方式改变,所以和原来上传的旧格式完全兼容(牺牲了点速度)
6。全部转化中文,不建议出现中文目录和中文文件。
7。js实现插入。
8。没有插入帖子的存在与tmp目录下面的临时文件会在15分钟后自动删除。


第二:新建文件简单介绍

upfile.cgi 上传主界面,会被post.cgi等文件自动用iframe方式调用的。
其中函数:
sub uppic #界面函数
sub doupfile #处理上传函数
sub delup #删除已经上传的文件。
dopost.pl 函数模块,处理获取文件/copy数据/处理帖子cache/删除帖子/移动帖子等等的文件附件处理。
其中函数:
sub upfileonpost #提交的时候处理临时文件到合适的地方:)更新帖子
sub delupfiles #删除当前帖子全部附件(遍历帖子方式)---删除回复时候用
sub delallupfiles #删除当前主贴全部附件,全部删除的时候调用(cache方式)
sub moveallupfiles #移动/copy当前主贴全部附件,移动/copy的时候调用(cache方式)
sub getusrdir #获取临时文件夹,基本函数,上面的函数多调用他,获取$usr/tmp/等等。也负责创建目录,删除超时临时文件。加文件上传数目限制等等,中文处理等等
sub gettmpname #获取临时文件名字,也是基本函数,亦有中文处理等等

第三:修改办法(废话那么多,终于正题了)

8 Replies

| Add a Reply
  • 1.界面修改,修改文件:fastreplay.pl,forumfastpost.pl,post.cgi,editpost.cgi

    打开这些文件,找到:


       $addtypedisp = $addtype;
       $addtypedisp =~ s/\, /\,/gi;
       $addtypedisp =~ s/ \,/\,/gi;
       $addtypedisp =~ tr/A-Z/a-z/;
       my @addtypedisp = split(/\,/, $addtypedisp);
       $addtypedisp = "<select><option value=#>支持类型:</option><option value=#>----------</option>";
       foreach (@addtypedisp) {
    chomp $_;
    next if ($_ eq "");
           $addtypedisp .= qq~<option>$_</option>~;
       }
       $addtypedisp .= qq~</select>~;
       $uploadreqire = "" if ($uploadreqire <= 0);
       $uploadreqire = "<BR>发帖数要大于 <B>$uploadreqire</B> 篇(认证用户不限)" if ($uploadreqire ne "");
       $output .= qq~<tr><td bgcolor=$miscbackone><b>上传附件或图片</b> (最大容量 <B>$maxupload</B>KB)$uploadreqire</td><td bgcolor=$miscbackone colspan=2><input type="file" size=45 name="addme">  $addtypedisp</td></tr>~;

    改成

       $uploadreqire = "" if ($uploadreqire <= 0);
       $uploadreqire = "<BR>发帖数要大于 <B>$uploadreqire</B> 篇(认证用户不限)" if ($uploadreqire ne "");
           ###路杨add start
       $output .= qq~<script language="javascript">function jsupfile(upname) {upname='[UploadFile='+upname+']';if (document.FORM.inpost.createTextRange && document.FORM.inpost.caretPos) {var caretPos = document.FORM.inpost.caretPos;caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? upname + ' ' : upname;document.FORM.inpost.focus();} else {document.FORM.inpost.value+=upname;document.FORM.inpost.focus();}}</script>~;
           ###路杨add end
           $output .= qq~</td></tr><tr><td bgcolor=$miscbackone><b>上传附件或图片</b> (最大容量 <B>$maxupload</B>KB)$uploadreqire</td><td bgcolor=$miscbackone> <iframe id="upframe" name="upframe" src="upfile.cgi?action=uppic&forum=$inforum&topic=$intopic" width=100% height=40 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=NO></iframe><br><font color=$fonthighlight>目前附件:</font><SPAN id=showupfile></SPAN>~;

  • 2。上传处理:
    打开post.cgi
    找到

    require "bbs.lib.pl";

    改成

    require "bbs.lib.pl";
    require "dopost.pl"; #add by 路杨

    找到
    $addme  = $query->param('addme');

    删除或者屏障掉这句。

    打开doaddnewtopic.pl
    找到

    &error("发表新主题&此区新主题必须带附件,请返回重试!") if (($addme eq "")&&($mastpostatt eq "yes")&&($membercode ne "ad")&&($membercode ne 'smo')&&($inmembmod ne "yes"));
    删除或者屏障掉这句。

    找到

    if (($addme)&&(($arrowupload ne "off")||($membercode eq "ad")||($membercode eq 'smo')||($inmembmod eq "yes"))) {
       $uploadreqire = 0 if ($uploadreqire < 0);
       if (($membercode ne "ad")&&($membercode ne 'smo')&&($membercode ne 'amo')&&($membercode ne 'cmo')&&($membercode ne 'mo')&&($membercode !~ /^rz/)&&($inmembmod ne "yes")&&(($numberofposts+$numberofreplys) < $uploadreqire)) {
    &error("上传出错&你必须发帖总数达到 <B>$uploadreqire</B> 才能在本区上传!");
       }

       my $up_filename =$query->uploadInfo($addme);
       ($up_name,$up_ext) = split(/.*\./,$up_filename);
       $up_ext = lc($up_ext);
       
       my $checkadd=0;
               for (split(/\,\s*/,$addtype)){
                   $checkadd=1,last if ($up_ext eq lc($_));
               }
       &error("上传出错&为了安全,不支持你所上传的附件,请重新选择!") if ($up_ext eq "exe"||$up_ext eq "com"||$up_ext eq "pl"||$up_ext eq "cgi"||$up_ext eq "pm"||$up_ext eq "php4"||$up_ext eq "asp"||$up_ext eq "php"||$up_ext eq "php3"||$up_ext eq "phtml"||$up_ext eq "jsp"||$up_ext eq "cfml"||$up_ext eq "dll");
       &error("上传出错&不支持你所上传的附件或者图片,请重新选择!") if ($checkadd==0);
       my $filesize=0;
       my $bufferall;

       open (FILE,">${imagesdir}$usrdir/$inforum/$inforum\_${newthreadnumber}.$up_ext");
       binmode (FILE);
       while ((($buffer=$query->readUploadFile($addme,4096)))&&!(($filesize>$maxupload)&&($membercode ne "ad"))) {
    print FILE $buffer;
    $bufferall .= $buffer;
    $filesize=$filesize+4;
       }
       close (FILE);

       if ($up_ext eq "torrent") {
       if (($bufferall !~ /\/announce/i)||($bufferall !~ /length/i)||($bufferall !~ /info/i)||($bufferall !~ /^d/i)) {
           unlink ("${imagesdir}$usrdir/$inforum/$inforum\_${newthreadnumber}.$up_ext");
           &error("上传出错&你上传的这个文件不是 .torrent 文件格式,请查实后重新上传!");
       }
       else {
       eval("use BTINFO;");
       if ($@ eq "") {
    my $btfileinfo = process_file($bufferall);
    my (undef, $hash, $announce) = split(/\n/, $btfileinfo);
    if ($hash eq "" || $announce eq "") {
       unlink ("${imagesdir}$usrdir/$inforum/$inforum\_${newthreadnumber}.$up_ext");
           &error("上传出错&你上传的这个文件不是 .torrent 文件格式,请查实后重新上传!");
    }
    my $seedinfo = output_torrent_data($hash, $announce);
    open(FILE, ">${imagesdir}$usrdir/$inforum/$inforum\_$newthreadnumber.$up_ext.btfile");
    print FILE "$btfileinfo\|$seedinfo";
    close(FILE);
       }
    }
       }
       if ($up_ext eq "gif"||$up_ext eq "jpg"||$up_ext eq "bmp"||$up_ext eq "jpeg"||$up_ext eq "png"||$up_ext eq "ppm"||$up_ext eq "svg"||$up_ext eq "xbm"||$up_ext eq "xpm") {
    eval("use Image::Info qw(image_info);");
    if ($@ eq "") {
       my $info = image_info("${imagesdir}$usrdir/$inforum/$inforum\_${newthreadnumber}.$up_ext");
       if ($info->{error} eq "Unrecognized file format"){
           unlink ("${imagesdir}$usrdir/$inforum/$inforum\_${newthreadnumber}.$up_ext");
           &error("上传出错&上传文件不是图片文件,请上传标准的图片文件!");
       }
               undef $info;
    }
               }
       if (($filesize>$maxupload)&&($membercode ne "ad")) {
                   unlink ("${imagesdir}$usrdir/$inforum/$inforum\_${newthreadnumber}.$up_ext");
    &error("上传出错&上传文件大小超过$maxupload,请重新选择!");
       }
       if ($dispshowcount eq "yes"){
    $filetomake = "${lbdir}FileCount/$inforum/$inforum\_${newthreadnumber}.cgi";
           if (open(FILE, ">$filetomake")) {
               print FILE "$inforum\_${newthreadnumber}\_\=$inforum\_${newthreadnumber}.$up_ext\=0\n";
               close(FILE);
           }
       }
       open (FILE, ">${lbdir}FileCount/$inforum/$inforum\_${newthreadnumber}.pl");
       print FILE "$inforum\_${newthreadnumber}.$up_ext\n";
       close(FILE);
    }

    改成

           $addme= &upfileonpost(\$inpost,$inforum,$newthreadnumber);#处理上传,返回数值给BT区做判断
    &error("发表新主题&此区新主题必须带附件,请返回重试!") if (($addme eq "0")&&($mastpostatt eq "yes")&&($membercode ne "ad")&&($membercode ne 'smo')&&($inmembmod ne "yes"));


    打开dotopicreplay.pl
    找到

    if (($addme)&&(($allowattachment ne "no")||($membercode eq "ad")||($membercode eq 'smo')||($inmembmod eq "yes"))) {
       my $filesize=0;
       $uploadreqire = 0 if ($uploadreqire < 0);
       if (($membercode ne "ad")&&($membercode ne 'smo')&&($membercode ne 'amo')&&($membercode ne 'cmo')&&($membercode ne 'mo')&&($membercode !~ /^rz/)&&($inmembmod ne "yes")&&(($numberofposts+$numberofreplys) < $uploadreqire)) {
    &error("上传出错&你必须发帖总数达到 <B>$uploadreqire</B> 才能在本区上传!");
       }
       my $up_filename =$query->uploadInfo($addme);
       ($up_name,$up_ext) = split(/\./,$up_filename);
       $up_ext = lc($up_ext);
       my $checkadd=0;
               for (split(/\,\s*/,$addtype)){
    $checkadd=1,last if ($up_ext eq lc($_));
               }
               if ($up_ext eq "exe"||$up_ext eq "com"||$up_ext eq "pl"||$up_ext eq "cgi"||$up_ext eq "asp"||$up_ext eq "pm"||$up_ext eq "php4"||$up_ext eq "php"||$up_ext eq "php3"||$up_ext eq "phtml"||$up_ext eq "jsp"||$up_ext eq "cfml"||$up_ext eq "dll") {
    &error("上传出错&为了安全,不支持你所上传的附件,请重新选择!");
       }
       if ($checkadd==0) { &error("上传出错&不支持你所上传的附件或者图片,请重新选择!"); }

       my $bufferall;
               $replynumber=$#allmessages+1;
               
       open (FILE,">${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$replynumber.$up_ext");
       binmode (FILE);
       while ((($buffer=$query->readUploadFile($addme,4096)))&&!(($filesize>$maxupload)&&($membercode ne "ad"))){
    print FILE $buffer;
    $bufferall .= $buffer;
    $filesize=$filesize+4;
       }
       close (FILE);
       if ($up_ext eq "gif"||$up_ext eq "jpg"||$up_ext eq "bmp"||$up_ext eq "jpeg"||$up_ext eq "png"||$up_ext eq "ppm"||$up_ext eq "svg"||$up_ext eq "xbm"||$up_ext eq "xpm") {
    eval("use Image::Info qw(image_info);");
    if ($@ eq "") {
       my $info = image_info("${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$replynumber.$up_ext");
       if ($info->{error} eq "Unrecognized file format"){
           unlink ("${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$replynumber.$up_ext");
           &error("上传出错&上传文件不是图片文件,请上传标准的图片文件!");
       }
               undef $info;
    }
               }
       if (($filesize>$maxupload)&&($membercode ne "ad")) {
                   unlink ("${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$replynumber.$up_ext");
    &error("上传出错&上传文件大小超过$maxupload,请重新选择! ");
       }
       if ($dispshowcount eq "yes"){
                   open(FILE, ">>${lbdir}FileCount/$inforum/$inforum\_$intopic.cgi");
                   print FILE "$inforum\_$intopic\_$replynumber\=$inforum\_$intopic\_$replynumber.$up_ext\=0\n";
                   close(FILE);
       }
       open (FILE, ">>${lbdir}FileCount/$inforum/$inforum\_$intopic.pl");
       print FILE "$inforum\_$intopic\_$replynumber.$up_ext\n";
       close(FILE);
    }

    全部删除。
    找到

    unlink ("${imagesdir}$usrdir/$inforum/inforum\_$intopic\_$replynumber.$up_ext") if ($addme);

    删除。
    找到

           if ($moneyhidden eq "yes") { $inposttemp = "(保密)"; $inpost="LBSALE[$moneypost]LBSALE".$inpost;}


    改成

           $addme= &upfileonpost(\$inpost,$inforum,$intopic);#处理上传,返回数值给BT区做判断
    #&error("发表新主题&此区新主题必须带附件,请返回重试!") if (($addme eq "0")&&($mastpostatt eq "yes")&&($membercode ne "ad")&&($membercode ne 'smo')&&($inmembmod ne "yes"));
           if ($moneyhidden eq "yes") { $inposttemp = "(保密)"; $inpost="LBSALE[$moneypost]LBSALE".$inpost;}

  • 3.修改帖子处理(有新上传)
    打开editpost.cgi
    找到

    require "bbs.lib.pl";

    改成

    require "bbs.lib.pl";
    require "dopost.pl"; #add by 路杨

    找到
    $addme  = $query->param('addme');

    删除或者屏障掉这句。

    找到

       my $p1=$inpostno-1;
       $dirtoopen2 = "$imagesdir" . "$usrdir/$inforum";
       opendir (DIR, "$dirtoopen2");
       @files = readdir(DIR);
       closedir (DIR);
       @files = grep(/^$inforum\_$intopic/,@files);
       if ($p1>0) { @files = grep(/^$inforum\_$intopic\_$p1\./,@files); } else { @files = grep(/^$inforum\_$intopic\./,@files); }
       if ( $#files >= 0 ) { $delimg="<BR><input type=checkbox name='delimg' value='no'>删除所有的原图像或附件</input>"; }

    改成

    #######旧方式的附件,为了兼容,保留,如果想彻底取消旧方式,可以删除###########################
       my $p1=$inpostno-1;
       $dirtoopen2 = "$imagesdir" . "$usrdir/$inforum";
       opendir (DIR, "$dirtoopen2");
       @files = readdir(DIR);
       closedir (DIR);
       @files = grep(/^$inforum\_$intopic/,@files);
       if ($p1>0) { @files = grep(/^$inforum\_$intopic\_$p1\./,@files); } else { @files = grep(/^$inforum\_$intopic\./,@files); }
       if ( $#files >= 0 ) { $delimg="<BR><input type=checkbox name='delimg' value='no'>删除所有的原图像或附件</input>"; }
    ########################################################

    if ( $rawpost =~/\[UploadFile=([^\]]+?)\]/is) {$delimg="<BR><input type=checkbox name='delimg' value='no'>删除所有的原图像或附件</input>" if ($delimg eq "");} #新的方式


    找到


       $dirtoopen2 = "$imagesdir" . "$usrdir/$inforum";
       opendir (DIR, "$dirtoopen2");
       @files = readdir(DIR);
       closedir (DIR);
       @files = grep(/^$inforum\_$intopic/,@files);

       if ($p1>0) { @files = grep(/^$inforum\_$intopic\_$p1\./,@files);} else { @files = grep(/^$inforum\_$intopic\./,@files);}

       foreach (@files) {
           if (($addme ne "")||($delimg ne "")) {
               unlink ("$imagesdir/$usrdir/$inforum/$_");
           }
       }

       my $filesize=0;

       if (($addme)&&((($inpostno eq "1")&&($arrowupload ne "off"))||(($inpostno ne "1")&&($allowattachment ne "no"))||($membercode eq "ad")||($membercode eq 'smo')||($inmembmod eq "yes"))) {
    $uploadreqire = 0 if ($uploadreqire < 0);
    if (($membercode ne "ad")&&($membercode ne 'smo')&&($membercode ne 'amo')&&($membercode ne 'mo')&&($membercode !~ /^rz/)&&($inmembmod ne "yes")&&(($numberofposts+$numberofreplys) < $uploadreqire)) {
       &error("上传出错&你必须发贴总数达到 <B>$uploadreqire</B> 才能在本区上传!");
    }

    my $up_filename =$query->uploadInfo($addme);
    my ($up_name,$up_ext) = split(/\./,$up_filename);
    $up_ext = lc($up_ext);

    my $checkadd=0;
           for (split(/\,\s*/,$addtype)){
               $checkadd=1,last if ($up_ext eq lc($_));
           }

           &error("上传出错&为了安全,不支持你所上传的附件,请重新选择!") if ($up_ext eq "exe"||$up_ext eq "com"||$up_ext eq "pl"||$up_ext eq "cgi"||$up_ext eq "asp"||$up_ext eq "php"||$up_ext eq "php3"||$up_ext eq "phtml"||$up_ext eq "jsp"||$up_ext eq "cfml"||$up_ext eq "dll");
    &error("上传出错&不支持你所上传的附件或者图片,请重新选择!") if ($checkadd==0);

    my $bufferall;
    if ($p1==0) {
       $dofile     = "$imagesdir/$usrdir/$forum/$forum\_$topic.$up_ext";
       $HackDetail = "$forum\_$topic\_\=$forum\_$topic.$up_ext\=0";
               open (FILE,">$dofile")
    } else {
       my $replynum=$postno-1;
       $dofile     = "$imagesdir/$usrdir/$forum/$forum\_$topic\_$p1.$up_ext";
       $HackDetail = "$forum\_$topic\_$p1\=$forum\_$topic\_$p1.$up_ext\=0";
       open (FILE,">$dofile");
    }
    binmode (FILE);
    while ((($buffer=$query->readUploadFile($addme,4096)))&&!(($filesize>$maxupload)&&($membercode ne "ad"))) {
       $filesize = $filesize + 4;
               print FILE $buffer;
               $bufferall .= $buffer;
    }
    close (FILE);

       if ($up_ext eq "torrent") {
       if (($bufferall !~ /\/announce/i)||($bufferall !~ /length/i)||($bufferall !~ /info/i)||($bufferall !~ /^d/i)) {
           unlink ("$dofile");
           &error("上传出错&你上传的这个文件不是 .torrent 文件格式,请查实后重新上传!");
       }
       else {
       eval("use BTINFO;");
       if ($@ eq "") {
    my $btfileinfo = process_file($bufferall);
    my (undef, $hash, $announce) = split(/\n/, $btfileinfo);
    if ($hash eq "" || $announce eq "") {
       unlink ("$dofile");
           &error("上传出错&你上传的这个文件不是 .torrent 文件格式,请查实后重新上传!");
    }
    my $seedinfo = output_torrent_data($hash, $announce);
    open(FILE, ">${imagesdir}$usrdir/$inforum/$inforum\_$newthreadnumber.$up_ext.btfile");
    print FILE "$btfileinfo\|$seedinfo";
    close(FILE);
       }
    }
       }

           if ($up_ext eq "gif"||$up_ext eq "jpg"||$up_ext eq "bmp"||$up_ext eq "jpeg"||$up_ext eq "png"||$up_ext eq "ppm"||$up_ext eq "svg"||$up_ext eq "xbm"||$up_ext eq "xpm") {
     eval("use Image::Info qw(image_info);");
     if ($@ eq "") {
               my $info = image_info("$dofile");
       if ($info->{error} eq "Unrecognized file format"){
    unlink ("$dofile");
    &error("上传出错&上传文件不是图片文件,请上传标准的图片文件!");
       }
       undef $info;
     }
           }

           if ($dispshowcount eq "yes") {
               $filetomake = "${lbdir}FileCount/$forum/$forum\_$topic.cgi";
       open(HACK, "$filetomake");
       @AllHackDetail = <HACK>;
       close(HACK);

       open(NHACK, ">$filetomake");
       foreach $HackDetail(@AllHackDetail){
    chomp $HackDetail;
    my ($ThisHackName,$ThisFileName,$ThisHackDT)=split(/\=/,$HackDetail);
    if ($ThisHackName eq "$forum\_$topic\_$p1") {
       $ThisHackDT++;
                       print NHACK "$ThisHackName\=$forum\_$topic\_$p1.$up_ext\=$ThisHackDT\n";
    } else {
       print NHACK "$HackDetail\n";
    }
       }
       close(NHACK);
           }
       }
           opendir (USRDIR, "${imagesdir}$usrdir/$inforum");
           @usruploaddata = readdir(USRDIR);
           closedir (USRDIR);
           @usruploaddata = grep(/^$inforum\_$intopic(\.|\_)/,@usruploaddata);
           chomp @usruploaddata;
           open (FILE, ">${lbdir}FileCount/$inforum/$inforum\_$intopic.pl");
           print FILE join("\n",@usruploaddata);
           print FILE "\n" if ($#usruploaddata > 0);
           close(FILE);

       if (($filesize>$maxupload)&&($membercode ne "ad")) {
           if ($postno==1) {
               unlink ("$imagesdir/$usrdir/$forum/$forum\_$topic.$up_ext");
           } else {
               my $replynum=$postno-1;
               unlink ("$imagesdir/$usrdir/$forum/$forum\_$topic\_$replynum.$up_ext");
           }
           &error("上传出错&上传文件大小超过$maxupload,请重新选择! ");
       }


    改成

    ########删除旧方式的附件,兼容的话保留####
       $dirtoopen2 = "$imagesdir" . "$usrdir/$inforum";
       opendir (DIR, "$dirtoopen2");
       @files = readdir(DIR);
       closedir (DIR);
       @files = grep(/^$inforum\_$intopic/,@files);

       if ($p1>0) { @files = grep(/^$inforum\_$intopic\_$p1\./,@files);} else { @files = grep(/^$inforum\_$intopic\./,@files);}

       foreach (@files) {
           if (($addme ne "")||($delimg ne "")) {
               unlink ("$imagesdir/$usrdir/$inforum/$_");
           }
      }

    #######删除全部原来的附件 START###(BY 路杨)
        if ($delimg ne "") {$showerr = &delupfiles(\$inpost,$inforum,$intopic);}; #新方式

    #######删除全部原来的附件 END

       my $filesize=0;

      $addme= &upfileonpost(\$inpost,$inforum,$intopic);#处理上传,返回数值给BT区做判断

  • 4。处理删除回复,删除帖子/移动帖子。
    打开delpost.cgi
    找到

    require "bbs.lib.pl";

    改成

    require "bbs.lib.pl";
    require "dopost.pl"; #add by 路杨


    找到

       opendir (DIRS, "${imagesdir}$usrdir/$inforum");
       my @files = readdir(DIRS);
       closedir (DIRS);
       
       @files = grep(/^$inforum\_$intopic(\.|\_)/i, @files);
       foreach (@files) {
    chomp $_;
    unlink ("${imagesdir}$usrdir/$inforum/$_");
       }

    改成


                       ###原来的方式开始,保持兼容的话保留,不然删除###
       opendir (DIRS, "${imagesdir}$usrdir/$inforum");
       my @files = readdir(DIRS);
       closedir (DIRS);
       
       @files = grep(/^$inforum\_$intopic(\.|\_)/i, @files);
       foreach (@files) {
    chomp $_;
    unlink ("${imagesdir}$usrdir/$inforum/$_");
       }
                       ###原来的方式完 ###
                       &delallupfiles($inforum,$intopic); ##新的帖子附件删除(cache方式)


    找到


          unlink ("${lbdir}FileCount/$inforum/$inforum\_$intopic.pl");
          $filetoopen = "${lbdir}FileCount/$inforum/$inforum\_$intopic.cgi";
          if (-e $filetoopen && $dispshowcount eq "yes") {
          &winlock($filetoopen) if ($OS_USED eq "Nt");
          open(FILE, "$filetoopen");
          flock(FILE, 1) if ($OS_USED eq "Unix");
          @DTHack = <FILE>;
          close(FILE);
          chomp @DTHack;
          $DTHack=join("\n",@DTHack);
          &winunlock($filetoopen) if ($OS_USED eq "Nt");
          }

          my $dirtoopen2 = "$imagesdir" . "$usrdir/$inforum";
          opendir (DIR, "$dirtoopen2");
          @dirdata = readdir(DIR);
          closedir (DIR);
          @oldinpostno=reverse sort @oldinpostno;
          @oldinpostnobak = @oldinpostno;
         
          foreach $pno(@oldinpostno){
            $pno--;
            @files=grep(/^$inforum\_$intopic\_$pno/,@dirdata);
            chomp @files;
            if($#files >= 0){
            $DTHack=~s/$inforum\_$intopic\_$pno\=$inforum\_$intopic\_$pno.(.+?)\=Ύ-9]+\n//s if (-e $filetoopen && $dispshowcount eq "yes" && $DTHack=~m/$inforum\_$intopic\_$pno/);
            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Ύ]);
            $ii=$i-1;
            rename ("${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$i.$fileext","${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$ii.$fileext");
            $DTHack=~s/$inforum\_$intopic\_$i/$inforum\_$intopic\_$ii/isg if (-e $filetoopen && $dispshowcount eq "yes" && $DTHack=~m/$inforum\_$intopic\_$i/);
            }
          }
          }


    改成

    ##########老的附件删除 保留,为了兼容,不兼容就del##
          # unlink ("${lbdir}FileCount/$inforum/$inforum\_$intopic.pl"); #现在不能删除他(注意这一句!!!)
          $filetoopen = "${lbdir}FileCount/$inforum/$inforum\_$intopic.cgi";
          if (-e $filetoopen && $dispshowcount eq "yes") {
          &winlock($filetoopen) if ($OS_USED eq "Nt");
          open(FILE, "$filetoopen");
          flock(FILE, 1) if ($OS_USED eq "Unix");
          @DTHack = <FILE>;
          close(FILE);
          chomp @DTHack;
          $DTHack=join("\n",@DTHack);
          &winunlock($filetoopen) if ($OS_USED eq "Nt");
          }

    #########很怪的重命名:)为了兼容,保留(路杨)
          my $dirtoopen2 = "$imagesdir" . "$usrdir/$inforum";
          opendir (DIR, "$dirtoopen2");
          @dirdata = readdir(DIR);
          closedir (DIR);
          @oldinpostno=reverse sort @oldinpostno;
          @oldinpostnobak = @oldinpostno;
         
          foreach $pno(@oldinpostno){
            $pno--;
            @files=grep(/^$inforum\_$intopic\_$pno/,@dirdata);
            chomp @files;
            if($#files >= 0){
            $DTHack=~s/$inforum\_$intopic\_$pno\=$inforum\_$intopic\_$pno.(.+?)\=Ύ-9]+\n//s if (-e $filetoopen && $dispshowcount eq "yes" && $DTHack=~m/$inforum\_$intopic\_$pno/);
            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Ύ]);
            $ii=$i-1;
            rename ("${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$i.$fileext","${imagesdir}$usrdir/$inforum/$inforum\_$intopic\_$ii.$fileext");
            $DTHack=~s/$inforum\_$intopic\_$i/$inforum\_$intopic\_$ii/isg if (-e $filetoopen && $dispshowcount eq "yes" && $DTHack=~m/$inforum\_$intopic\_$i/);
            }
          }
          }
    ###############老的附件删除END
          &delupfiles(\$delpostES,$inforum,$intopic);      ###新的方法BY路杨


    找到

        @files1 = grep(/^$inforum\_$intopic\./,@files);
               $files1 = @files1;
       if ($files1 > 0) {
           foreach (@files1) {
               (my $name,my $ext) = split(/\./,$_);
       copy("${imagesdir}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$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}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$movetoid/$movetoid\_$newthreadnumber\_$name3\.$ext");
           }
       }

    改成

    ####旧的方式,不需要兼容的话,可以删除
       @files1 = grep(/^$inforum\_$intopic\./,@files);
               $files1 = @files1;
       if ($files1 > 0) {
           foreach (@files1) {
               (my $name,my $ext) = split(/\./,$_);
       copy("${imagesdir}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$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}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$movetoid/$movetoid\_$newthreadnumber\_$name3\.$ext");
           }
       }
    #####旧的方式
               &moveallupfiles($inforum,$intopic,$movetoid,$newthreadnumber,$inleavemessage); #新的方式


    打开jinghua.cgi
    找到

                   @files1 = grep(/^$inforum\_$intopic\./,@files);
                   $files1 = @files1;
           if ($files1 > 0) {
               foreach (@files1) {
               (my $name,my $ext) = split(/\./,$_);
           copy("${imagesdir}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$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}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$movetoid/$movetoid\_$newthreadnumber\_$name3\.$ext");
               }
           }

    改成

    #########旧的附件copy,为了兼容,保留 路杨
                   @files1 = grep(/^$inforum\_$intopic\./,@files);
                   $files1 = @files1;
           if ($files1 > 0) {
               foreach (@files1) {
               (my $name,my $ext) = split(/\./,$_);
           copy("${imagesdir}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$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}$usrdir/$inforum/$name.$ext","${imagesdir}$usrdir/$movetoid/$movetoid\_$newthreadnumber\_$name3\.$ext");
               }
           }
    ###########
               require "dopost.pl"; #路杨
               &moveallupfiles($inforum,$intopic,$movetoid,$newthreadnumber,"yes"); #新的附件copy 路杨



  • 5。分论坛显示处理 打开 forums.cgi
    找到

    opendir (DIR, "${imagesdir}$usrdir/$inforum");
    @usruploadfile = readdir(DIR);
    closedir (DIR);

    删除这些。

    找到

       if (($topiccount >= $abstopcount + $cattopcount)||($startarray ne 0)||($forumid eq $inforum)) {
         my @usruploadfile = grep(/^$inforum\_$topicid(\.|\_)/,@usruploadfile);
         if ($#usruploadfile >= 0) {
           my @files = grep(/^$inforum\_$topicid\./,@usruploadfile);
           if ($#files >= 0) {
       my $usrfilename = $filesΎ]; chomp $usrfilename;
       ($up_name, $up_ext) = split(/\./,$usrfilename);
       $up_ext =~ tr/A-Z/a-z/;
               $filetype = "unknow";
               $filetype = $up_ext if (-e "${imagesdir}icon/$up_ext.gif");
               
       $addmelink=qq~<a href=attachment.cgi?forum=$inforum&topic=$topicid&postno=1&type=.$up_ext target=_blank>~;
               if (($up_ext eq 'jpg')||($up_ext eq 'gif')||($up_ext eq 'bmp')||($up_ext eq 'png')) { $topictitle ="$addmelink<img src=$imagesurl/icon/$filetype.gif width=16 alt=\"该主题有一张 $filetype 格式图片\" border=0 align=absmiddle></a> ".$topictitle; }
           elsif ($up_ext eq "swf") { $topictitle ="$addmelink<img src=$imagesurl/icon/$filetype.gif width=16 alt=\"该主题有一张 $filetype 格式动画\" border=0 align=absmiddle></a> ".$topictitle; }
       else {
           if ($dispshowcount eq "yes") { $addmelink=qq~<a href="javascript:Download('$inforum','$topicid','')">~; }
           $topictitle ="$addmelink<img src=$imagesurl/icon/$filetype.gif width=16 align=absmiddle alt=\"该主题有一个“$filetype”类型附件\" border=0></a> ".$topictitle;
       }
               $addonlength += 4;
           }
               
           my @files = grep(/^$inforum\_$topicid\_/,@usruploadfile);
           if ($#files >= 0) {
               my $filesnum= $#files + 1;
               $topictitle=$topictitle." <img src=$imagesurl/icon/replyattachment.gif width=16 align=absmiddle alt=\"该主题内的回复中含有 $filesnum 个图形或附件\">";
               $addonlength += 3;
           }
         }
       }

    改成

       if (($topiccount >= $abstopcount + $cattopcount)||($startarray ne 0)||($forumid eq $inforum)) {

         my $usruploadfile = "${lbdir}FileCount/$inforum/${inforum}\_${topicid}.pl";

         if (-e "$usruploadfile")
         {
           my @fileinfo = stat("$usruploadfile"); my $filelength = $fileinfoΕ];
           if ($filelength != 0)
           {
    if (open(FILEUP,"$usruploadfile"))
            {
     undef $/;
     $files = <FILEUP>;
     close(FILEUP);
     $/="\n";
             my @files=split(/\n/,$files);
             $filesnumber=@files;

             if ($filesnumber >= 1)
             {
       my $usrfilename = $filesΎ];
               chomp $usrfilename;
       ($up_name, $up_ext) = split(/\./,$usrfilename);
       $up_ext =~ tr/A-Z/a-z/;
               $filetype = "unknow";
               $filetype = $up_ext if (-e "${imagesdir}icon/$up_ext.gif");
               
       ## $addmelink=qq~<a href=attachment.cgi?forum=$inforum&topic=$topicid&postno=1&type=.$up_ext target=_blank>~;
               if (($up_ext eq 'jpg')||($up_ext eq 'gif')||($up_ext eq 'bmp')||($up_ext eq 'png')) { $topictitle ="$addmelink<img src=$imagesurl/icon/$filetype.gif width=16 alt=\"该主题有一张 $filetype 格式图片\" border=0 align=absmiddle></a> ".$topictitle; }
       elsif ($up_ext eq "swf") { $topictitle ="$addmelink<img src=$imagesurl/icon/$filetype.gif width=16 alt=\"该主题有一张 $filetype 格式动画\" border=0 align=absmiddle></a> ".$topictitle; }
       else {
           # if ($dispshowcount eq "yes") { $addmelink=qq~<a href="javascript:Download('$inforum','$topicid','')">~; }
           $topictitle ="$addmelink<img src=$imagesurl/icon/$filetype.gif width=16 align=absmiddle alt=\"该主题有一个“$filetype”类型附件\" border=0></a> ".$topictitle;
       }
               $addonlength += 4;
            }
            if ($filesnumber >= 2) {
               $topictitle=$topictitle." <img src=$imagesurl/icon/replyattachment.gif width=16 align=absmiddle alt=\"该主题内的回复中含有 $filesnumber 个图形或附件\">";
               $addonlength += 3;
            }


    }
           }          

         }
       }

  • 6.帖子显示处理
    打开toptic.cgi
    找到


    if (open (FILE, "${lbdir}FileCount/$inforum/$inforum\_$intopic.pl")) {
       @usruploaddata =<FILE>;
       close(FILE);
       chomp @usruploaddata;
    } else {
       opendir (USRDIR, "${imagesdir}$usrdir/$inforum");
       @usruploaddata = readdir(USRDIR);
       closedir (USRDIR);
       @usruploaddata = grep(/^$inforum\_$intopic(\.|\_)/,@usruploaddata);
       chomp @usruploaddata;
       open (FILE, ">${lbdir}FileCount/$inforum/$inforum\_$intopic.pl");
       print FILE join("\n",@usruploaddata);
       print FILE "\n" if ($#usruploaddata > 0);
       close(FILE);
    }
    $usruploaddata = @usruploaddata;
    if ($usruploaddata > 0) {
       @usruploaddatareply = grep(/^$inforum\_$intopic\_/,@usruploaddata);
       $usruploaddatareply = @usruploaddatareply;
    }


    改成

    ##兼容代码,请注意修改了一部分
    if (open (FILE, "${lbdir}FileCount/$inforum/$inforum\_$intopic.pl")) {
       @usruploaddata =<FILE>;
       close(FILE);
       chomp @usruploaddata;
    }
    ##老格式的目录遍例
    else {
       opendir (USRDIR, "${imagesdir}$usrdir/$inforum");
       @usruploaddata = readdir(USRDIR);
       closedir (USRDIR);
       @usruploaddata = grep(/^$inforum\_$intopic(\.|\_)/,@usruploaddata);
       chomp @usruploaddata;
    #    open (FILE, ">${lbdir}FileCount/$inforum/$inforum\_$intopic.pl");
    #    print FILE join("\n",@usruploaddata);
    #    print FILE "\n" if ($#usruploaddata > 0);
    #    close(FILE);
    }

    $usruploaddata = @usruploaddata;
    if ($usruploaddata > 0) {
       @usruploaddatareply = grep(/^$inforum\_$intopic\_/,@usruploaddata);
       $usruploaddatareply = @usruploaddatareply;
    }


    后面的代码

    foreach (@threads[$startarray .. $endarray]) {
     chomp $_;
    #    next if ($_ eq "");
     if ($usruploaddata > 0) {
       my $addmefile =0;
       if ($rn>0) {
    if ($usruploaddatareply > 0) {
               $rrn = $rn;
               my @usruploaddata1 = grep(/^$inforum\_$intopic\_$rrn\./,@usruploaddatareply);
       my @downcount      = grep(/$inforum\_$intopic\_$rrn\./,@filedowncount);
               if ($#usruploaddata1 >= 0) {
                  my $usruploadfile = $usruploaddata1Ύ]; chomp $usruploadfile;
                  ($up_name, $up_ext) = split(/\./,$usruploadfile);
                   $up_ext =~ tr/A-Z/a-z/;
             $addmefile =1;
             $usruploaddatareply --;
               }
               if ($#downcount>=0 && $dispshowcount eq "yes") {
                   my $DownDetail = $downcountΎ]; chomp $DownDetail;
           my ($ThisHackName,$ThisFileName,$ThisHackDT)=split(/\=/,$DownDetail);
           $DownTime=",<font color=$fonthighlight>共被下载</font>: $ThisHackDT 次";
           }
    }
       }
       else {
           my @usruploaddata2 = grep(/^$inforum\_$intopic\./,@usruploaddata);
    my @downcount      = grep(/$inforum\_$intopic\./,@filedowncount);
           if ($#usruploaddata2 >= 0) {
       my $usruploadfile = $usruploaddata2Ύ]; chomp $usruploadfile;
               ($up_name, $up_ext) = split(/\./,$usruploadfile);
               $up_ext =~ tr/A-Z/a-z/;
               $addmefile =1;
           }
           if ($#downcount>=0 && $dispshowcount eq "yes") {
               my $DownDetail = $downcountΎ]; chomp $DownDetail;
               my ($ThisHackName,$ThisFileName,$ThisHackDT)=split(/\=/,$DownDetail);
       $DownTime=",<font color=$fonthighlight>共被下载</font>: $ThisHackDT 次";
    }
       }
       if (!(-e "${imagesdir}$usrdir/$inforum/$up_name.$up_ext")) {
           unlink ("${lbdir}FileCount/$inforum/$inforum\_$intopic.pl");
           print "页面已经更新,程序自动刷新,如果没有自动刷新,请手工刷新一次!<BR><BR><meta http-equiv='refresh' content='0;'>";
           exit;
       }
       if ($addmefile == 1) {
      @fileinfo = stat("${imagesdir}$usrdir/$inforum/$up_name.$up_ext");
    $filetype = "unknow";
    $filetype = $up_ext if (-e "${imagesdir}icon/$up_ext.gif");
    if (($up_ext eq "gif")||($up_ext eq "jpg")||($up_ext eq "jpe")||($up_ext eq "jpeg")||($up_ext eq "tif")||($up_ext eq "png")||($up_ext eq "bmp")) {
               if (($nodispphoto eq 'yes')||($arrawpostpic eq 'off')) {
       $addme = qq(<a href=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext target=_blank><img src=$imagesurl/icon/$filetype.gif border=0 width=16></a> <a href=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext target=_blank>点击显示此主题相关图片</a><br>);
       } else{
       $addme = qq(<img src=$imagesurl/icon/$filetype.gif border=0 width=16> 此主题相关图片如下:<br><a href=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext target=_blank><img src=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext border=0 alt=按此在新窗口浏览图片 onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" onmousewheel="return bbimg(this)"></a><br>);
       }
       $addme .= qq(<img src=$imagesurl/images/none.gif whidth=0 height=5><BR><span style=CURSOR:hand onclick=loadThreadFollow($forumid,$topicid,$editpostnumber,'$up_ext')><img id=followImg$editpostnumber src=$imagesurl/images/cat.gif width=9 loaded=no nofollow="cat.gif" valign=absmiddle> 按此查看图片详细信息<table cellpadding=0 class=ts1 cellspacing=0 width=50% id=follow$editpostnumber style=DISPLAY:none><tr><td id=followTd$editpostnumber><DIV class=ts onclick=loadThreadFollow($forumid,$topicid,$editpostnumber,'$up_ext')>正在读取此图片的详细信息,请稍候 ...</DIV></td></tr></table></span><BR><BR>);
    }
    elsif ($up_ext eq "swf") {
       if ($arrawpostflash eq "on") {
           $addme = qq(<img src=$imagesurl/icon/$filetype.gif border=0 width=16> 该主题有一个 $up_ext 格式 Flash 动画 (共 $fileinfoΕ] 字节)<br><br><PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext quality=high width=$defaultflashwidth height=$defaultflashheight pluginspage="http:\/\/www.macromedia.com\/shockwave\/download\/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application\/x-shockwave-flash"><\/embed><br> <img src=$imagesurl/images/fav.gif width=16> <a href=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext target=_blank>全屏观看</a> (按右键下载)<br><br>)
       } else {
           $addme=qq(<a href=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext target=_blank><img src=$imagesurl/icon/$filetype.gif border=0 width=16 height=16>点击欣赏 Flash 动画</a>);
       }
    }
    elsif (($up_ext eq "torrent")&&(($rn eq 0)||($rn eq ""))) {
       require "dobtinfo.pl";
    }
    else {
           if ($dispshowcount eq "yes") {
       my ($forumno,$topicno,$replyno)=split(/\_/,$up_name);
       $addme = qq(<font color=$fonthighlight>相关附件</font>:<a href="javascript:Download('$forumno','$topicno','$replyno')"><img src=$imagesurl/icon/$filetype.gif border=0 width=16 alt="该主题有一个“$filetype”类型附件,点击下载"></a> (共 $fileinfoΕ] 字节)$DownTime<br><br>);
           } else {
           $addme = qq(<font color=$fonthighlight>相关附件</font>:<a href=attachment.cgi?forum=$inforum&topic=$intopic&postno=$editpostnumber&type=.$up_ext target=_blank><img src=$imagesurl/icon/$filetype.gif border=0 width=16 alt="该主题有一个“$filetype”类型附件,点击下载"></a> (共 $fileinfoΕ] 字节)<br><br>);
           }
    }
       } else { $addme = ""; }
     } else { $addme = ""; }

    为大量的兼容代码。不与理会了。


  • 7.标签转化。
    打开code.cgi
    找到


       if ($wwjf ne "no") {
    if ($$post=~/LBHIDDEN\[(.*?)\]LBHIDDEN/sg) {

    前面加上

    ###处理上传 By 路杨(Easun Studio) start 等待完善###
       $tmptopic = $intopic%100;
       $$post =~ s/\[UploadFile=([^\]]+?\.(gif|jpg|png|bmp|jpeg))\]/<br><img src=$imagesurl\/icon\/$2.gif border=0 width=16> <b>这个为上传图片文件<\/b><br> \[img\]$imagesurl\/$usrdir\/$inforum\/$tmptopic\/$1\[\/img\]<br>/isg;
       $$post =~ s/\[UploadFile=([^\]]+?\.swf)\]/<br><img src=$imagesurl\/icon\/swf.gif border=0 width=16> <b>这个为上传Flash文件<\/b><br> \[swf\]$imagesurl\/$usrdir\/$inforum\/$tmptopic\/$1\[\/swf\]<br>/isg;
       $$post =~ s/\[UploadFile=([^\]]+?)(\.(.*?))\]/<br><img src=$imagesurl\/icon\/$3.gif border=0 width=16> <b>这个为上传$3文件<\/b><br><a href=$imagesurl\/$usrdir\/$inforum\/$tmptopic\/$1$2> 点击查看 <\/a><br>/isg;
       $$post =~ s/\[UploadFile=([^\]]+?)\]/<br><img src=$imagesurl\/icon\/unknow.gif border=0 width=16> <b>这个为上传未知文件<\/b><br><a href=$imagesurl\/$usrdir\/$inforum\/$tmptopic\/$1> 点击查看 <\/a><br>/isg;
    ###  处理上传 By 路杨(Easun Studio) end ###

  • 完成。
    可以看的出来,为了保持原来的兼容,保留了大量的代码。
    草率之作,很多地方都可以完善,只是路杨精力不足了。
    JS部分我今天测试时候,发现删除的js更新不会进行(难道又是IE5兼容)?其他的都是在IE5下正常运行。请Anthony老弟高手看看解决的问题。

    注意事项
    1。本功能适合XP/MX,改法相似。
    2。本功能和LeoBBS的加密附件功能没有柔和,期待高手
    3。本功能对显示下载功能有冲突,似乎我的改法已经破坏了这个功能?但是这个功能我是从来没有开放过。期待高手完善。
    4。还是那句话,跟进官方升级的人不要用喔,有兼容问题
    5。路杨的程序一般都会在每个程序段上加上功能注释,欢迎指教。
    6。欠扁的话,路杨近来很忙……所以免责版本,请先备份。

Add a Reply

Forum Groups

Good Perl Books

Perl 學習手札

作者:簡信昌

Perl 學習手札 , 一本优秀的中文Perl在线学习资料。

Perl 程序讨论区

12 50

Last Topic: [注意]本区文章归档区 by 路杨 on Oct 16, 2006

事物处理及其他

113 1410

Last Topic: 踩个脚印 by 眼睛oo on Dec 4, 2010

测试私密区

测试私密区

18 88

Notice: 用于测试程序或者不可告人之秘密。不要问我要密码哦。。[此为原LB_ES论坛系统保留项,只限原有权限朋友进入,不再接受注册]

OpenID accepted here Learn more about OpenID