|
3#
楼主 |
发表于 2008-7-11 10:43:31
|
只看该作者
mantis中如何显示统计报表
你是否正确安装了JPGraph
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块。
1). 可以在http://www.aditus.nu/jpgraph/jpdownload.php下载最新版的JPGraph,请注意JPGraph 1.x 版本是针对php4,2.x 是针对php5的,请下载对应版本。
2). 将下载包解压到一个目录下,我解压到mantis下的jpgraph目录,定义为$JPGraph。
3). 然后在config_inc.php中添加下面几行:
$g_use_jpgraph = ON;
$g_jpgraph_path = './jpgraph/src/'; //你也可以按照你的地址填写文件的绝对路径。
4). 在php.ini将“;extension=php_gd2.dll”前面的分号删除,这个模块是JPGraph在显示图表和进行汉字编码转换是所必须的。
(3) JPGraph的中文显示
据说1.0以后的版本已经能够很好的支持报表中文显示,但可能PHP5的问题,我这里还是乱码,这里列出参考别人的方法我所做的配置。
1) 如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的。
JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码。
解决方法是增加对图形设置字体的代码;
2) 打开$mantis\core\graph_api.php,查找:graph_get_font(),在其中添加一行
'chinese_gbk' => FF_SIMSUN,
3) 在config_inc.php文件中添加
$g_graph_font = 'chinese_gbk';
4) 打开$JPGraph\src\jpg-config.inc.php
查找 DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
改为 DEFINE('CHINESE_TTF_FONT','simsun.ttc');
jpg-config.inc.php也可以不改,如果生成的图形中的字体想由自己定义,可以这样改。
这个时候,如果你选择的语言是chinese_simplified,现在你的图形报表应该就可以显示中文了。
5) 但如果你选择语言跟我一样是chinese_simplified_utf8,则发现报表显示还是乱码。
原来JPGraph中处理的时候比较bt,只要看到字体设置是FF_SIMSUN,就认为字符串编码是GB2312,输出的时候都要转成UTF8,
单实际上已经是UTF8了,根本不用转。
直接修改代码:
打开JPGraph下的jpgraph_ttf.inc.php文件,搜索其中:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
if( $this->g2312 == null ) {
include_once 'jpgraph_gb2312.php' ;
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
}
改为:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
/*
if( $this->g2312 == null ) {
include_once 'jpgraph_gb2312.php' ;
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
*/
return $aTxt;
}
就是把转换编码的代码注释掉,最好不要直接删掉了,不然以后想改回来就麻烦了。
这样改实际是有些问题,如果mantis中有部分用户的语言选择为chinese_simplified,另一部分选择为chinese_simplified_utf8就不行了,
总会有部分人报表出现乱码。所以一个小组一定要统一阿:-)
目前图形报表中文显示应该没有问题了。
[ 本帖最后由 dingyongchao 于 2008-7-16 13:49 编辑 ] |
|