扫描二维码关注官方公众号
12下一页
返回列表 发布新帖

[PT建站] 让nexusphp的PT站流量条支持中文以及对mybar.php的研究

4562 21
发表于 2011-4-27 02:03:47 | 查看全部 阅读模式

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 power12317 于 2011-5-12 10:05 编辑

nexusphp的PT站显示流量条的地址为mybar.php这点相信很多人知道了吧,就不多说了,打开一看,发现代码并不复杂

首先看第10行与第11行

if (!$my_img = $Cache->get_value('userbar_'.$_SERVER['REQUEST_URI'])){
$res = sql_query("SELECT username, uploaded, downloaded, class, privacy FROM users WHERE id=".sqlesc($userid)." LIMIT 1");

这里代表从数据库中引用某数据
username -----  用户名
uploader ------  上传量
downloaded ---  下载量
class  ----------  等级
privacy --------  隐私保护

如果想要在流量条里面添加魔力值显示,则可以添加一个seedbonus ,想添加其他的,自己可以去数据库的user列表中找名称
添加后可以如下
if (!$my_img = $Cache->get_value('userbar_'.$_SERVER['REQUEST_URI'])){
$res = sql_query("SELECT username, uploaded, downloaded, class, seedbonus, privacy FROM users WHERE id=".sqlesc($userid)." LIMIT 1");

然后看15-16行
elseif($row['privacy'] == 'strong')        // 如果隐私保护设置为高,则不显示流量条。
die;

这就是有些人突然出现明明等级符合却不能显示流量条的原因,因为他设置隐私保护为高了,如果删除这两行,就算设置隐私保护,仍然可以显示流量条。

17-18行
elseif($row['class'] < $userbar_class)  //如果等级小于设定等级,则不显示流量条
die;

19行开始
else{
$username = $row['username'];
$uploaded = mksize($row['uploaded']);
$downloaded = mksize($row['downloaded']);
/////$class2 = $row['class'];
}

这些是定义什么的,我也看不懂,不过如果添加了魔力值等等别的东西,就照样搬上去吧。
如下:
else{
$username = $row['username'];
$uploaded = mksize($row['uploaded']);
$downloaded = mksize($row['downloaded']);
$seedbonus = $row['seedbonus'];
/////$class2 = $row['class'];
}

往下看到
if (!$_GET['noname'])   //如果输入noname,将不在流量条显示名字
包括下面的
if (!$_GET['noup'])
if (!$_GET['nodown'])

请参考这里
http://www.gebi1.com/forum.php?mod=viewthread&tid=12589

接下来也是最重要的一部,就是让流量条支持显示中文名的方法,
之前发现不管怎么弄,一直中文名都会变成某中欧编码,显示在图像上是乱码(也许TTG也是这样,没注意)
原来是imagestring不支持在图片上输出中文,要输出中文就得换成imagettftext
imagettftext的用法参考如下
http://cn.php.net/imagettftext

为了方便,我把整个显示名字的功能换成了如下(感谢我朋友,这些都是他的功劳)

if (!$_GET['noname'])
{
$my_img=imagecreatefrompng("pic/userbar/".$bgpic.".png");
$black = ImageColorAllocate($my_img, 255 , 255 , 255);       //字体颜色
$font = "simhei.ttf";                     //字体路径,放在根目录下了。可自己更换字体
imagettftext($my_img,12,0,20,43,$black,$font,$username);
}

即可显示中文名了,不过颜色不能自定义了,有点遗憾,有心人可以研究一下,应该弄成颜色自定义挺简单。


如果要显示魔力值,最后一步得在后面加上显示魔力值的属性
如我在
if (!$_GET['nodown'])
这一大块显示下载的后面加上
if (!$_GET['noseedbonus'])
{
if (isset($_GET['seedbonusred']) && $_GET['seedbonusred']>=0 && $_GET['seedbonusred']<=255)      //如果自定义显示红色颜色程度
  $seedbonusred = 0 + $_GET['seedbonusred'];            //显示自定义的红色程度
else $seedbonusred=251;                    //否则显示指定的红色的程度  (三原色,大家应该知道)
if (isset($_GET['seedbonusgreen']) && $_GET['seedbonusgreen']>=0 && $_GET['seedbonusgreen']<=255)
  $seedbonusgreen = 0 + $_GET['seedbonusgreen'];
else $seedbonusgreen=254;                //显示绿色的程度
if (isset($_GET['seedbonusblue']) && $_GET['seedbonusblue']>=0 && $_GET['seedbonusblue']<=255)
  $seedbonusblue = 0 + $_GET['seedbonusblue'];
else $seedbonusblue=13;                 //显示蓝色的程度
if (isset($_GET['seedbonussize']) && $_GET['seedbonussize']>=1 && $_GET['seedbonussize']<=5)
  $seedbonussize = 0 + $_GET['seedbonussize'];
else $seedbonussize=5;                   //显示的尺寸大小
if (isset($_GET['seedbonusx']) && $_GET['seedbonusx']>=0 && $_GET['seedbonusx']<=350)
  $seedbonusx = 0 + $_GET['seedbonusx'];
else $seedbonusx=415;                       //显示位置距离最左边的值
if (isset($_GET['seedbonusy']) && $_GET['seedbonusy']>=0 && $_GET['seedbonusy']<=19)
  $seedbonusy = 0 + $_GET['seedbonusy'];
else $seedbonusy=31;                        //显示位置距离顶部的值
$seedbonus_colour = imagecolorallocate($my_img, $seedbonusred, $seedbonusgreen, $seedbonusblue);
imagestring($my_img, $seedbonussize, $seedbonusx, $seedbonusy, $seedbonus, $seedbonus_colour);
}

这样,魔力值就显示出来了,同时可以调整其他对应显示代码的参数调整其他数据的颜色,位置,大小。

好了,不多说了,就到这里吧,期待看到一个个漂亮的,功能齐全的流量条!

评论21

pkpk1 发表于 2011-4-27 02:06:17 | 查看全部
{:3_322:}继续来
回复 点赞

使用道具 举报

fishfly520Lv.3 发表于 2011-4-27 02:12:26 | 查看全部
很专业呀。得慢慢看。
回复 点赞

使用道具 举报

超人迪迦@2 发表于 2011-4-27 02:17:09 | 查看全部
嗯嗯。。。弄得很好啊
回复 点赞

使用道具 举报

yzc 发表于 2011-4-27 02:21:46 | 查看全部
收藏之{:2_126:}
回复 点赞

使用道具 举报

starx@2Lv.5 发表于 2011-4-27 03:05:56 | 查看全部
这个要顶,更要学习!
西南交大的蚂蚁PT也改得很有个性:
http://pt.antsoul.com/torrents.php

个人觉得NEXUSPHP这套程序功能很强大(多风格、多语言、多种子显示),只是界面这方面比起欧洲的各大PT站逊了点,程序架构以PHP+HTML混编,感觉比DZ论坛上手容易多了!
回复 点赞

使用道具 举报

power12317@2楼主Lv.5 发表于 2011-4-27 04:17:06 | 查看全部
这个要顶,更要学习!
西南交大的蚂蚁PT也改得很有个性:
http://pt.antsoul.com/torrents.php

个人觉 ...
starx 发表于 2011-4-27 03:05



    呵呵,看了一下蚂蚁的,确实挺有个性,修改了框架结构,还用了CHD那样的的鼠标特效JS,流量条还会自动变背景颜色(随机显示?)。
回复 点赞

使用道具 举报

wang八Lv.4 发表于 2011-4-27 05:25:09 | 查看全部
学习下,哈哈哈{:2_144:}
回复 点赞

使用道具 举报

jilyLv.3 发表于 2011-4-27 09:05:43 | 查看全部
来学习,我在想有没有可能把多个流量条合成一个图,这样那些限制字节的也可以都显示出来
回复 点赞

使用道具 举报

zhouyu7725Lv.8 发表于 2011-4-27 09:57:21 | 查看全部
学习了,谢谢技术来支持我们新人。
回复 点赞

使用道具 举报

JNPLv.9 发表于 2011-4-27 10:02:03 | 查看全部
本帖最后由 JNP 于 2011-4-27 10:03 编辑

膜拜下先~前段时间U2的流量条已经支持中日文显示,还能更换字体……

游客,本帖隐藏的内容需要积分高于 11 才可浏览,您当前积分为 0


回复 点赞

使用道具 举报

power12317@2楼主Lv.5 发表于 2011-4-27 13:05:32 | 查看全部
本帖最后由 power12317 于 2011-4-27 13:08 编辑
膜拜下先~前段时间U2的流量条已经支持中日文显示,还能更换字体……

**** 本内容被作者隐藏 ****
JNP 发表于 2011-4-27 10:02



    小傲娇大大的流量条我在之前从另外一位大大那里看过,本来还想联系U2技术看能不能帮忙解决,后来还是被一个朋友发现问题解决了。关于字体的话,看来还有点需要研究额。。。
回复 点赞

使用道具 举报

tiaozi 发表于 2011-4-28 08:55:43 | 查看全部
回复 1# power12317
一天没来 又发现发了好东西了 感谢
等等我把ipv6和ipv4双tracker调试好了,也一块发出来 大家看看 呵呵
回复 点赞

使用道具 举报

yfyefang@2 发表于 2011-5-30 13:01:38 | 查看全部
谢谢,我要去看看
回复 点赞

使用道具 举报

齐罗贝尔Lv.3 发表于 2011-5-30 14:51:35 | 查看全部
怎么做到的啊
求问啊
回复 点赞

使用道具 举报

chenzhuyu 发表于 2011-8-11 00:55:35 | 查看全部
回复 点赞

使用道具 举报

yesilike 发表于 2011-8-23 16:54:12 | 查看全部
谢谢楼主,收藏了。
回复 点赞

使用道具 举报

AnswerLv.8 发表于 2011-12-10 08:14:31 | 查看全部
学习了,有时间弄弄
回复 点赞

使用道具 举报

喜欢分享 发表于 2012-12-1 13:55:30 | 查看全部
我照着你的修改了,但是连用户名都显示不了了。
下面是麦田PT的源代码,可以显示英文,但是中文还是乱码

  1. if (!$_GET['noname'])
  2. {
  3.         if (isset($_GET['namered']) && $_GET['namered']>=0 && $_GET['namered']<=255)
  4.                 $namered = 0 + $_GET['namered'];
  5.         else $namered=255;
  6.         if (isset($_GET['namegreen']) && $_GET['namegreen']>=0 && $_GET['namegreen']<=255)
  7.                 $namegreen = 0 + $_GET['namegreen'];
  8.         else $namegreen=255;
  9.         if (isset($_GET['nameblue']) && $_GET['nameblue']>=0 && $_GET['nameblue']<=255)
  10.                 $nameblue = 0 + $_GET['nameblue'];
  11.         else $nameblue=255;
  12.         if (isset($_GET['namesize']) && $_GET['namesize']>=1 && $_GET['namesize']<=5)
  13.                 $namesize = 0 + $_GET['namesize'];
  14.         else $namesize=10;
  15.         if (isset($_GET['namex']) && $_GET['namex']>=0 && $_GET['namex']<=350)
  16.                 $namex = 0 + $_GET['namex'];
  17.         else $namex=10;
  18.         if (isset($_GET['namey']) && $_GET['namey']>=0 && $_GET['namey']<=19)
  19.                 $namey = 0 + $_GET['namey'];
  20.         else $namey=14;
  21.         $name_colour = imagecolorallocate($my_img, $namered, $namegreen, $nameblue);
  22.         //imagestring($my_img, $namesize, $namex, $namey, $username, $name_colour);
  23.         //imagettftext($my_img, $namesize, 0, $namex, $namey, $name_colour, "fonts/simhei.ttf", $username);
  24.         $pic=imagecreate(140,20);
  25.         $black=imagecolorallocate($pic,100,100,100);
  26.         $tran=imagecolortransparent($pic,$black);
  27.         $white=imagecolorallocate($pic,255,255,255);
  28.         $font="fonts/simhei.ttf";  
  29.         imagettftext($pic,10,0,10,14,$white,$font,$username);
  30.         imagecopymerge($my_img,$pic,0,0,0,0,140,20,80);
  31. }
复制代码


回复 点赞

使用道具 举报

power12317@2楼主Lv.5 发表于 2012-12-12 19:32:17 | 查看全部
喜欢分享 发表于 2012-12-1 13:55
我照着你的修改了,但是连用户名都显示不了了。
下面是麦田PT的源代码,可以显示英文,但是中文还是乱码
...

用户名显示不了是因为缺少字体文件。。需要将字体文件放在网站根目录下。。
回复 点赞

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

淘宝小店

邀请码

VIP会员

微信客服

公众号

微信群

投诉/建议联系

support@gebi1.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 隔壁网 版权所有 All Rights Reserved. 粤ICP备14056481号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表