|
Hack名称:评分增强
适合版本:pw 4.3.2
安装程序:笨笨啊
安装难易:简单
hack特点:美化评分显示界面,可显示评分时间及评分理由。较官方的好看。
增加表 :无
影响字段:随意。可选择修改pw_tmsgs和表pw_posts表中的ifmark字段为text字段。
增加文件:无
修改文件:
read.php
job.php
template/风格目录/read.htm(可能有多个)
请在修改前做好相关的文件备份。虽然本Hack在本地调试通过并正常。但不能保证您在安装的时候出现一些错误。
为了防止评分多的时候不显示之前的评分记录,可以选择执行这句(这步可以不操作)
ALTER TABLE `pw_posts` CHANGE `ifmark` `ifmark` TEXT;
ALTER TABLE `pw_tmsgs` CHANGE `ifmark` `ifmark` TEXT;
这两句sql,将ifmark字段类型改成text,这样就突破了255长度的限制。
然后开始将修改文件。请注意,在修改前请先做好备份!
1.打开job.php
找到
$ifmark=$atc['ifmark']? $name.':'.$addpoint.'('.addslashes($windid).")\t".$atc['ifmark'] : $name.':'.$addpoint.'('.addslashes($windid).')';
if(strlen($ifmark)>120){
$ifmark=substr($ifmark,0,120);
$ifmark=substr($ifmark,0,strrpos($ifmark,"\t"));
}
替换为
//add by 笨笨啊 评分增强
$atc_content=str_replace("|","Ä",$atc_content);
$ifmark=$atc['ifmark']? $name.':'.$addpoint.'('.addslashes($windid)."|$timestamp|".Char_cv($atc_content).")\t".$atc['ifmark'] : $name.':'.$addpoint.'('.addslashes($windid)."|$timestamp|".Char_cv($atc_content).')';
//add by 笨笨啊 评分增强
2.打开template/模板目录/read.htm
找到:
<table cellspacing=1 cellpadding=4 bgcolor=$tablecolor>
<tr><td align=center class=t_one>此帖被评分,最近评分记录<table>$read[mark]</table></td></tr></table>
替换为:
<table cellspacing="1" cellpadding="4" width="98%" align="center" class='i_table'>
<tr align="center" class="head">
<td width="15%">评分者</td><td width="25%">时间</td><td width="15%">分数</td><td width="45%">理由</td></tr>
</tr>
$read[mark]
</table>
3.打开read.php
找到
if($read['ifmark']){
$markdb=explode("\t",$read['ifmark']);
$markinfo="<tr>";
foreach($markdb as $key=>$value){
$markinfo.='<td>'.$value.'</td>';
$key++;
if($key%3==0)$markinfo.='</tr><tr>';
}
$markinfo.='</tr>';
$read['mark']=$markinfo;
} else{
$read['mark']='';
}
替换为
//add by 笨笨啊 评分增强
/*
if($read['ifmark']){
$markdb=explode("\t",$read['ifmark']);
$markinfo="<tr>";
foreach($markdb as $key=>$value){
$markinfo.='<td>'.$value.'</td>';
$key++;
if($key%3==0)$markinfo.='</tr><tr>';
}
$markinfo.='</tr>';
$read['mark']=$markinfo;
} else{
$read['mark']='';
}
*/
if($read['ifmark']){
$markdb=explode("\t",$read['ifmark']);
foreach($markdb as $key=>$value){
list($tmark_3,$tmark)=explode("(",$value); //得到评分的结果
$tmark=str_replace(")","",$tmark);
list($tmark_1,$tmark_2,$tmark_4)=explode("|",$tmark); //得到评分人,评分时间,以及评分理由
$tmark_4=str_replace("Ä","|",$tmark_4);
$tmark_1="<a href='profile.php?action=show&username=$tmark_1' target=_blank>$tmark_1</a>";
//因为之前的评分是没有时间的,所以要先加个判断
if($tmark_2)
{
$tmark_2=get_date($tmark_2);
}
else
{
$tmark_2='unknow time';
}
if(!$tmark_4) $tmark_4=" ";
$markinfo.="<tr align='center'>";
$markinfo.="<td>$tmark_1</td>";
$markinfo.="<td>$tmark_2</td>";
$markinfo.="<td align='left'>$tmark_3</td>";
$markinfo.="<td>$tmark_4</td>";
$markinfo.="</tr>";
}
$markinfo.='</tr>';
$read['mark']=$markinfo;
} else{
$read['mark']='';
}
//add by 笨笨啊 评分增强
完成~
截图

===============华丽的分割线 For 0821更新=============
解决了不能显示2条以上评分问题:
1.如果需要显示所有的评分,请勿必要执行开头的两句sql,使得字段变成text,以防数据溢出
2.如果之前安装此hack的,请打开job.php,找到
if(strlen($ifmark)>120){
$ifmark=substr($ifmark,0,120);
$ifmark=substr($ifmark,0,strrpos($ifmark,"\t"));
}
替换为(其实就是注释掉)
/*
if(strlen($ifmark)>120){
$ifmark=substr($ifmark,0,120);
$ifmark=substr($ifmark,0,strrpos($ifmark,"\t"));
}
*/
OK~
上面的安装文档已更新主程序包(0821)
版主评分hack.rar
|
一共有 57 条评论
Quote:
没有增加数据库的查询
也没有增加字段
可以自己决定是否更改ifmark字段的字段类型,不修改也不影响使用
又要增加资料表
又查寻资料表
资料库会拖累
Quote:
可以在模板文件里修改表格的宽度
默认的是98%
可以调小,不同的风格可以不同的显示风格
慢了一拍,哈哈。。。。先来用用。