[原创+发布]会员精华集 For LeoBBSx(Fixed)

[原创+发布]会员精华集 For LeoBBSx / By 路杨

#############################################################
#
#        [原创+发布]会员精华集 V.1.0 for LeoBBSx
#        性质 : LeoBBSx插件
#        本插件用于显示该会员的所有精华帖子
#        程序作者:路杨(EasunLee) http://perl.easunstudio.com
#                                 http://www.leohacks.com
#        版权所有,欢迎转载。但 敬请保留版权+出处
#
#############################################################

详细介绍:


1。本插件用于显示该会员的所有精华帖子
2。亦采用Leobbsx目前的cache机制,可以最大程度的降低资源占用。
3。单独程序设置,只对原jinghua.cgi做少量修改。(状态显示代码除外)
4。支持随机数据目录,安全性能有较好提升。
5。和系统cache机制精密结合,不会担心操作后的显示问题。

系统文件:

1。jhshow.cgi :会员精华集主程序,放在程序目录下。非Win32要求 755。
2。目录 jinghua (可以改成 jinghuaXXXXX目录,即加随机数。):数据目录,存放jinghua数据,在程序目录下,非Win32要求 777. 其下文件要求666
   (该目录如果不存在,程序会自动建立。)


安装说明:

1。上传jhshow.cgi到程序目录下,建立jinghua目录,按照上面 系统文件 说明设置属性。
2。修改 jinghua.cgi。方法如下:
 打开jinghua.cgi,在其最后加上
sub upjhshow
{ #add by Easunlee(路杨)

   my ($nametocheck,$thisjh,$act) = @_;    # 用户名、帖子(结构f_t),加减?
   $nametocheck =~ s/ /\_/g;
   $nametocheck =~ tr/A-Z/a-z/;
   $nametocheck =~ s/[\a\f\n\e\0\r\t\`\~\!\@\#\$\%\^\&\*\(\)\+\=\\\{\}\;\'\:\"\,\.\/\<\>\?]//isg;

   &getjhshowdir() unless $jhshowdir;

   #if (-e )
   my $file ="${lbdir}$jhshowdir/$nametocheck.cgi";
   my $size= (-s $file);
   my $filedata ="";
   if ($size) {
       sysopen(FILE,"$file",O_RDONLY,0666) or return 0;
       sysseek(FILE, 0, 0); #定位
       sysread(FILE, $filedata,$size);
       close(FILE);

       #$filedata=~s/[\r\n]/\n/g;
       $filedata=~s/\r//g;
       $filedata =~ s/\n{2,}/\n/isg; ##空行删除
       $filedata =~ s/\n$//s; ##删除后面的\n
  }


   $filedata =$thisjh."\n".$filedata if($act eq "+");
   $filedata =~ s/(^|\n)$thisjh(\n|$)/$1$3/s if($act eq "-");

   &winlock($file) if ($OS_USED eq "Nt");
   open(JHSHOW, ">$file");
    flock(JHSHOW, 2) if ($OS_USED eq "Unix");
   print JHSHOW "$filedata\n";
    flock(JHSHOW, 8 ) if ($OS_USED eq "Unix");
   close(JHSHOW);
   &winunlock("$file") if ($OS_USED eq "Nt");
   unlink ("${lbdir}$jhshowdir/$nametocheck.pl");

}

sub getjhshowdir
{
   opendir (DIRS, "$lbdir");
   my @files = readdir(DIRS);
   closedir (DIRS);
   my @needdir = grep(/^jinghua/i, @files);
   $jhshowdir = $needdirΎ];

}

找到
               &sendtoposter("$inmembername","$mn","","jinghua","$fid","$tid", "$topictitle","") if (($sendmanageinfo eq "yes")&&(lc($inmembername) ne lc($mn))&&($act eq "+"));

在其后面加上
&upjhshow ($mn,"$fid\_$tid",$act);



其他程序连接修改:

 可以按照喜好,自己任意在 /帖子界面 /分论坛界面 /控制面版菜单/个人资料/ 中加入连接。连接地址为
 jhshow.cgi?member=XXXX (XXXX为要查看的会员名字),如果调用自己的精华集可以直接调用jhshow.cgi
 比如在控制面版菜单加入,即可在打开bbs.lib.pl,找到
 
<div class=menuitems> <a href=delmycache.cgi title=清除我的缓存,确保个人所有资料都是最新的><font color=#000000>更新我的缓存</font></a> </div>

在这句前面加上
<div class=menuitems> <a href=jhshow.cgi title=查看我自己的所有精华帖子><font color=#000000>我的所有精华</font></a> </div>

注意,在这句里面不要有任何换行,因为这个是js数组的要求:)

其他添加办法类似,为纯粹的HTML代码。这里不做讨论。 :P
 

其他:

已经在某个万人级别BBS测试一周,请放心使用,有Bug及时汇报。

注意。目前仅能显示安装插件以后加入的精华,以前的精华需要统计程序统计才可以。统计程序会在明天发布:)

请下载附件:)
//static.easunlee.cn/upload/early/jhshow_1101290520.rar


注意。2004/11/24 17:38 fix a bug,请重新下载。


继续:)

[工具+发布]会员精华文集数目统计程式 For jhshow.cgi / By 路杨

#############################################################
#        会员精华文集数目统计程式 for LeoBBSx
#
#        Writed by 路杨(EasunLee) http://perl.easunstudio.com
#        Version Beta 1.10 ES Build 041113(2004.11.13 by EasunLee)
#        (BY Easun Lee)
#
#        会员精华文集数目统计程式(路杨 2004.11.13)
#
#        原始版权: 路杨(EasunLee)
#        网站地址: http://perl.easunstudio.com
#                  http://www.LeoHacks.com
#############################################################

说明 :

配合 HACK程序 “会员精华集 For LeoBBSx By 路杨”使用。统计安装HACK以前各会员的精华帖子。

使用办法。

1。上传 T-jhshow.cgi到数据目录。非Win32请设置属性为777。
2。关闭论坛。
3。运行本程序。
4。开放论坛。


注意 :该程序会自动锁定。

另外: 该程序只能运行在leobbsx条件下。只适合安装了原始Hack的论坛使用。

程序请下载:)
//static.easunlee.cn/upload/early/jhshowtool_1101229584.rar