让nexusphp的PT站流量条支持中文以及对mybar.php的研究
本帖最后由 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);
}
这样,魔力值就显示出来了,同时可以调整其他对应显示代码的参数调整其他数据的颜色,位置,大小。
好了,不多说了,就到这里吧,期待看到一个个漂亮的,功能齐全的流量条! {:3_322:}继续来 很专业呀。得慢慢看。 嗯嗯。。。弄得很好啊 收藏之{:2_126:} 这个要顶,更要学习!
西南交大的蚂蚁PT也改得很有个性:
http://pt.antsoul.com/torrents.php
个人觉得NEXUSPHP这套程序功能很强大(多风格、多语言、多种子显示),只是界面这方面比起欧洲的各大PT站逊了点,程序架构以PHP+HTML混编,感觉比DZ论坛上手容易多了! 这个要顶,更要学习!
西南交大的蚂蚁PT也改得很有个性:
http://pt.antsoul.com/torrents.php
个人觉 ...
starx 发表于 2011-4-27 03:05 http://www.gebi1.com/images/common/back.gif
呵呵,看了一下蚂蚁的,确实挺有个性,修改了框架结构,还用了CHD那样的的鼠标特效JS,流量条还会自动变背景颜色(随机显示?)。 学习下,哈哈哈{:2_144:} 来学习,我在想有没有可能把多个流量条合成一个图,这样那些限制字节的也可以都显示出来 学习了,谢谢技术来支持我们新人。 本帖最后由 JNP 于 2011-4-27 10:03 编辑
膜拜下先~前段时间U2的流量条已经支持中日文显示,还能更换字体……
**** Hidden Message ***** 本帖最后由 power12317 于 2011-4-27 13:08 编辑
膜拜下先~前段时间U2的流量条已经支持中日文显示,还能更换字体……
**** 本内容被作者隐藏 ****
JNP 发表于 2011-4-27 10:02 http://www.gebi1.com/images/common/back.gif
小傲娇大大的流量条我在之前从另外一位大大那里看过,本来还想联系U2技术看能不能帮忙解决,后来还是被一个朋友发现问题解决了。关于字体的话,看来还有点需要研究额。。。 回复 1# power12317
一天没来 又发现发了好东西了 感谢
等等我把ipv6和ipv4双tracker调试好了,也一块发出来 大家看看 呵呵 谢谢,我要去看看 怎么做到的啊
求问啊 http://pt.antsoul.com/mybarplus.php?userid=1152.png 谢谢楼主,收藏了。 学习了,有时间弄弄 我照着你的修改了,但是连用户名都显示不了了。
下面是麦田PT的源代码,可以显示英文,但是中文还是乱码
if (!$_GET['noname'])
{
if (isset($_GET['namered']) && $_GET['namered']>=0 && $_GET['namered']<=255)
$namered = 0 + $_GET['namered'];
else $namered=255;
if (isset($_GET['namegreen']) && $_GET['namegreen']>=0 && $_GET['namegreen']<=255)
$namegreen = 0 + $_GET['namegreen'];
else $namegreen=255;
if (isset($_GET['nameblue']) && $_GET['nameblue']>=0 && $_GET['nameblue']<=255)
$nameblue = 0 + $_GET['nameblue'];
else $nameblue=255;
if (isset($_GET['namesize']) && $_GET['namesize']>=1 && $_GET['namesize']<=5)
$namesize = 0 + $_GET['namesize'];
else $namesize=10;
if (isset($_GET['namex']) && $_GET['namex']>=0 && $_GET['namex']<=350)
$namex = 0 + $_GET['namex'];
else $namex=10;
if (isset($_GET['namey']) && $_GET['namey']>=0 && $_GET['namey']<=19)
$namey = 0 + $_GET['namey'];
else $namey=14;
$name_colour = imagecolorallocate($my_img, $namered, $namegreen, $nameblue);
//imagestring($my_img, $namesize, $namex, $namey, $username, $name_colour);
//imagettftext($my_img, $namesize, 0, $namex, $namey, $name_colour, "fonts/simhei.ttf", $username);
$pic=imagecreate(140,20);
$black=imagecolorallocate($pic,100,100,100);
$tran=imagecolortransparent($pic,$black);
$white=imagecolorallocate($pic,255,255,255);
$font="fonts/simhei.ttf";
imagettftext($pic,10,0,10,14,$white,$font,$username);
imagecopymerge($my_img,$pic,0,0,0,0,140,20,80);
}
喜欢分享 发表于 2012-12-1 13:55 static/image/common/back.gif
我照着你的修改了,但是连用户名都显示不了了。
下面是麦田PT的源代码,可以显示英文,但是中文还是乱码
...
用户名显示不了是因为缺少字体文件。。需要将字体文件放在网站根目录下。。
页:
[1]
2