http://easun.org/upload/early/2_1119254604.jpg
“支持楼主”按钮只会出现在主题帖子上(投票帖子除外)。
当会员点击“支持楼主”按钮后,左边楼主资料里的“支持数”会增加1点、主题列表上的“支持”会增加1点。
“支持数”与“支持”是2个不同的变量,“支持数”是楼主的属性,这个属性值会一直累加下去;“支持”是主题帖子的属性,像投票的票数一样,每个会员只能支持楼主一次,楼主与管理员可以看见支持者的名单。
“支持数”可以体现出楼主一直以来所发帖子的受欢迎程度,“支持数”越大,说明该会员越受欢迎;
“支持”可以让会员在主题列表上看到帖子的受欢迎程度,并不是帖子的点击
有时候部分会员会觉得帖子很好,但回复时不知道说些什么,又或者懒得回复,这时候点击“支持楼主”按钮无疑是最好的支持方法。
http://easun.org/upload/early/3_1119254660.jpg
看到过类似的插件,但自己不懂CGI,修改不了
评价帖子插件说明
一、包含文件
bean.cgi评价帖子主文件,放于 cgi-bin 目录下,UNIX 系统改属性为 755 。
评价帖子.dat评价帖子帮助文件,放于 cgi-bin/help 目录下。
readme.txt本说明文件,认真仔细看。
bean目录请自建于 cgi-bin 目录下,用于存放评价帖子数据文件。
UNIX 系统改属性为 777 。并在其下建立相应论坛序号的子目录。
二、简介
论坛中用户拥有一些属性,在这些属性中,如 发贴数、等级 等这些只能反
应用户的灌水能力。货币、经验、魅力 等是与发贴数关联的,是重复的东西又
没有多大用处,所以在 MX 中就去掉了,而威望数量有限,且只能由版主增加,
只能反应管理员的意志。这些都不能反应用户的发贴水平和在用户中的地位。我
就想给用户增加了两个新的属性,一个是评价值,随发贴数增加,在评价他人的
帖子的时候消耗,只有多发贴才能多评价他人的帖子。另一个是声望值,只有你
发的帖子受到大家的支持的时候才会增加,遭到反对的时候则减少,从而反应你
发贴的质量和在用户中的地位,鼓励用户多发贴,发好贴。详见帮助。
这两个属性,我使用了被 MX 废弃的 附加经验 和 附加魅力 的字段进行存
储。所以这个插件仅适用于 MX 版,如果你的论坛已经使用了这两个字段,或者
你使用的是 XP 版,请自行修改程序,转为使用其他字段存储。
使用此插件除使用 bean.cgi 外,还要对一些文件进行修改,修改方法见下。
我所增加的这两个属性,禁止任何形式的修改、作弊,否则将失去增加他的
意义。并禁止在注册时给初始值,初始值只能为零。
三、其他文件修改方法
topic.cgi显示声望,用户评价情况及评价连接
找
else {$post = qq($post<table width=100% cellpadding=0 cellspacing=0><tr><td><BR><BR>$postcopyright<BR></td></tr></table>) if (($post ne "\n</td></tr></table>")&&($posticon !~/<br>/i));}
后加
$rrn=$rn-1;
if ($rrn==0) {$file = "$intopic.cgi";} else {$file = "$intopic\_$rrn.cgi";}
$awardfilename = "${lbdir}bean/$inforum/award$file";
$punishfilename = "${lbdir}bean/$inforum/punish$file";
if (-e $awardfilename) {
open(FILE,$awardfilename);
$adawardname = <FILE>;
$awardname = <FILE>;
close(FILE);
chomp $adawardname;
chomp $awardname;
($adawardname,$moawardname) = split("\t",$adawardname);
#$awardname = ",$awardname,";
$awardname =~ s/\,\,| +\,|\, +/\,/g;
#if ($awardname =~ /,$inmembername,/) {$inawarded = "yes";}
$awardname =~ s/^\,//;
$awardname =~ s/\,$//;
my @inawardname = split(",",$awardname);
$awardnum = @inawardname;
}
else {
$adawardname = "";
$moawardname = "";
$awardname = "";
$awardnum = 0;
}
if (-e $punishfilename) {
open(FILE,$punishfilename);
$adpunishname = <FILE>;
$punishname = <FILE>;
close(FILE);
chomp $adpunishname;
chomp $punishname;
($adpunishname,$mopunishname) = split("\t",$adpunishname);
#$punishname = ",$punishname,";
$punishname =~ s/\,\,| +\,|\, +/\,/g;
#if ($punishname =~ /,$inmembername,/) {$inpunished = "yes";}
$punishname =~ s/^\,//;
$punishname =~ s/\,$//;
my @inpunishname = split(",",$punishname);
$punishnum = @inpunishname;
}
else {
$adpunishname = "";
$mopunishname = "";
$punishname = "";
$punishnum = 0;
}
$awardnum += 3 if (lc($adawardname) ne "") ;
$awardnum += 2 if (lc($moawardname) ne "") ;
$punishnum += 3 if (lc($adpunishname) ne "") ;
$punishnum += 2 if (lc($mopunishname) ne "") ;
$inscore = qq~<font color=$postfontcolor>支持($awardnum) 反对($punishnum)</font> ~;
$inscore .= qq~<input type=button value=评价 onclick="openScript('bean.cgi?forum=$inforum&topic=$intopic&reply=$rrn',500,400)" > ~ if ($inmembername ne "客人") ;
找
<br><font color=$postfontcolorone>威望: $rating$rateuser</font>
上加
<br><font color=$postfontcolortwo>声望:$addjy</font>
找
<td align=right nowarp valign=bottom width=110></td></form>
改成
<td align=right nowarp valign=bottom width=180>$inscore</td></form>
post.cgi在用户发贴时增加评价值
找
$numberofposts++;
下加
$meili += 5;
再找
$numberofreplys++;
下加
$meili += 3;
delpost.cgi在用户帖子被删时减少评价值
找
$postdel ++ if ($inleavemessage eq "yes");
改成
if ($inleavemessage eq "yes"){$postdel++;$meili -= 10;}
再找
$postdel ++;
下加
$meili -= 10;
profile.cgi在用户资料中显示声望及评价值
找
<td bgColor=$miscbackone valign=middle><font color=$fontcolormisc><b>门派:</b></font></td>
<td bgColor=$miscbacktwo valign=middle><font color=$fontcolormisc> $jhmp</font></td>
</tr>
下加
<tr>
<td bgColor=$miscbackone valign=middle><font color=$fontcolormisc><b>声望:</b></font></td>
<td bgColor=$miscbacktwo valign=middle><font color=$fontcolormisc> <b>$addjy</b></font></td>
<td bgColor=$miscbackone valign=middle><font color=$fontcolormisc><b>评价值:</b></font></td>
<td bgColor=$miscbacktwo valign=middle><font color=$fontcolormisc> $meili</font></td>
</tr>
http://easun.org/upload/early/B8F8MXB0E6D4F6BC_1119254778.zip
汗~~~这儿也看到你了。。。。
这样比较容易纵容看帖不回,呵呵~~~~
格式早就变化了。这个绝对不能用在LeoBBSX上的。只能用在Lb5000上啊。。
好多变量都不对了。
PS:http://www.hong0.net/forum/cgi-box/topic.cgi?forum=4&topic=176 这个似乎要好点的,
好几个BBS我都跑过了,看到好几个帖子上都有路扬的热心回复,所以点击他资料上的主页~就这样跑来了~呵呵,LEOHACK上的朋友说新版本增加了类似的功能,但我喜欢的是MX啊,MX简洁又快速,是LB首选!
现在论坛灌水的人就是多,通常回复一两句空洞无物的话就过去了,这样的帖子不要也罢,
我相信真正喜欢帖子的人是会回复的,而且是用心的回复。
我认为论坛首要的是气氛而不是人气。
还有一个很想得到的功能,不过先弄好这个再说~解决问题要一步一步来。
忘了说我的LB是MX版,鸡蛋石头功和投票帖子的代码我在GOOGLE上搜过,就是找不到,现在好了,可以参照。
对于提出的这个功能,我的想法是修改投票帖子代码,然后把代码放到普通主题帖子里,这样就可以实现附件图片的“支持楼主”按钮,会员点击后会同时增加2个变量的数值,一个是主题列表上的“支持”(取代原来的票数),一个是会员属性的“支持数”。
我自己尝试过把代码复制到某些位置上,但老是出现错误,自己不懂CGI~乱试。。呵呵。
我自己再修改看看,再不行就回来请教两位。
《AI人工智能》我还没有看呢~~手头上只有一张他的原声大碟,看过影片再听CD才更有味道。
困了~睡觉去~
奇怪,
http://www.leohacks.com/cgi-bin/topic.cgi?forum=5&topic=197(在二楼提及的方法),所上传的文件bean.cgi里面找不到$addjy的值,不明白它的值是怎样根据点击次数增加的。
近来事情比较多。自己的坛子也无暇顾及,抱歉了。
看到这里了吗?
$memberdata[28]+=$change;
$memberdata[29]+=$change;
这个就是 经验 和 魅力 啊。
大家都有自己的工作要忙,有空的时候帮我解答,我都很高兴了~~怎么会怪坛主呢。
明白了~~大概是指增加用户数据文件里的第XX个值,对吧?
如果把这个插件修改成以下功能,应该怎样做呢?
1、评价按钮(支持、反对)放在 TOPIC.cgi页面楼主帖子里,而不是BEAN.cgi;
2、加楼主$addjy值时不会减少评价人的魅力值(这个我修改了,但不知道修改得好不好);
3、评价按钮只出现在楼主帖子里( 这个是添加if($editpostnumber eq '1')吧 ),所有会员(包括管理员)才能看到评价按钮,而且只能评价一次(只知道在评价生成的文件里查找是否有符合的ID,从而确定能否参与评价,不知道怎样通过代码去实现),管理员可以看到参与评价的会员列表(列出评价生成的文件里所有ID?不知道怎样通过代码去实现)。
MX 我好久没有看了。而且和XP 和LeoBBSx 差别都很大的。所以。。也只能从思路上说说了。
可以这么说,只是这个第XX是从0开始算的。。 实际上是个数组,可以对照getmenber里面的次序来判断。
把连接直接放过去估计就好了吧? MX的topic.cgi我没有。看了半天也没有猜测出来。
是不消耗那个20点评价值吧? 直接吧 $memberdata[29]-=20; 删除掉也就好了:)
恩。。 加 $editpostnumber eq '1' 或者 $editpostnumber == 1 都可以吧。 但是 用 == 1 好一点。是斑竹看见吧? 可以参考现在的威望的显示, 基本上是判断 $mymembercode 值(也许是$membercode?这个MX和Leobbsx不同)。如果你用的这个程序,判断 $inawarded ,如果 $inawarded = "yes" 就说明已经评价过了。如果等于'no'就说明没有评价过。
列出评价生成的文件里所有ID? 比较消耗资源。不知道你现在存储结构取消了非斑竹的评价是否一样?但是完全可以参考code.cgi里面显示买卖帖子的所有名单来实现。
== 1 是绝对的而 eq '1' 不是绝对的,或者说 1 是常数 而 '1' 是变量或数组什么的,所以$editpostnumber == 1 比 $editpostnumber eq '1' 安全,对吗?
MX所有会员值是这样:
$membercode eq 'me' 会员
'mo' 斑竹
'smo' 总斑竹
'ad' 坛主
评价功能是这样的:
楼主帖子里面的评价按钮(帖子地址 topic.cgi?forum=9&topic=10083&show=0)
原代码:
http://easun.org/upload/early/7_1119806030.jpg
修改后:
http://easun.org/upload/early/4_1119805143.jpg
-------------------------------------------
点击评价按钮后出现地址为:bean.cgi?forum=9&topic=10083&reply=0 的页面,上面有2个按钮
原文件是这样:
http://easun.org/upload/early/6_1119805495.jpg
后来觉得其他东西没有用,就删掉了(只是把文字、颜色和框架删了,变量的代码不知道删哪些~所以没有删除)
http://easun.org/upload/early/5_1119805175.jpg
--------------------------
点击反对(支持)按钮后会出现确定页面 (bean.cgi?action=punish&forum=9&topic=10083&reply=0&mode=) 类似在投票帖子里提交投票后打开的确认页(图片不贴上来了,我这样解析,以后的新人看见应该明白吧 )
问题来了:
看不出bean.cgi里哪段代码是提交按钮后执行的,况且在topic.cgi页面上提交执行 bean.cgi 的代码这样的跨页面提交真的不懂
放上我的topic.cgihttp://easun.org/upload/early/topic_1119807551.rar
没用过这个……
不过按你说的,这不算跨页面提交啊,你在topic页面上点提交,就会打开一个窗口,应该是这句
onclick="openScript('bean.cgi?forum=$inforum&topic=$intopic&reply=$rrn',500,400)"
这已经进入了bean.cgi页面了,它里面应该就是通过表单来提交处理数据了吧?
PS 你删了后的界面还真……简洁。
我是想去掉TOPIC.CGI上的“评价”,把BEAN,CGI里面的“反对”、“支持”按钮放到TPOIC.CGI页面上去代替“评价”,从而不用进入BEAN,CGI就能点击“反对”、“支持”。