查看完整版本: 请问mantis中如何显示统计报表

good1228 2007-7-11 13:52

请问mantis中如何显示统计报表

我的mantis中的图形报表无法显示,统计报表的其他项点击后显示如下错误!
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 24576 bytes) in C:\AppServ\www\mantis\jpgraph\src\jpgraph.php on line 3961

luming 2007-7-13 11:09

[url]http://wordpress.org.cn/forums/archiver/tid-711.html[/url]
[url]http://www.tech-recipes.com/php_programming_tips777.html[/url]

xiaomayi0323 2007-7-13 18:47

你是否正确安装了JPGraph
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块。

1). 可以在[url]http://www.aditus.nu/jpgraph/jpdownload.php[/url]下载最新版的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.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就不行了,
总会有部分人报表出现乱码。所以一个小组一定要统一阿:-)

目前图形报表中文显示应该没有问题了。

good1228 2007-7-23 11:31

辛苦两位版主了!

我先试试你们建议的方法,太感谢了!再给你们发帖!

张浩 2007-7-26 17:45

回复 #4 good1228 的帖子

您好,可以参照我Mantis安装手册中的说明
[url]http://bbs.51testing.com/thread-84372-1-1.html[/url]
张浩
[email]bullzhanghao@yahoo.com.cn[/email]
页: [1]
查看完整版本: 请问mantis中如何显示统计报表