mantis中图形报表的安装(已验证,可成功)

Posted on Posted in 经验分享

mantis中图形报表的安装(已验证,可成功)


mantis中图形报表的安装
图形报表的设置
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
1)下载JPGraph:http://www.aditus.nu/jpgraph/index.php下载JPGraph的安装文件,目前最高版本是1.14;
2)将下载下来的jpgraph-1.14.tar.gz解压缩到C:\PHP\includes目录下;
3)打开config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;

4)修改Windows目录下的PHP.ini文件,将“;extension=php_gd2.dll”和“;extension=php_iconv.dll”两行前面的分号删除;另外如果extension_dir项不正确,请把extension_dir改为正确的值(应该是extension_dir = “./extensions/”,我这里不知道为什么是extension_dir = “./”,大概就是因为使用懒人安装方法的缘故吧);
5)将C:\PHP\dlls下面的iconv.dll复制到Windows\System32目录下,以上两个步骤使PHP自动载入php_gd2和php_iconv.dll模块,这两个模块是JPGraph在显示图表和进行汉字编码转换是所必须的;
6)修改JPGraph的src目录下的jpgraph.php;将CACHE_DIR和TTF_DIR分别定义为Windows下的Temp目录和Fonts目录,如下所示 

DEFINE(“CACHE_DIR”,”E:/WinTemp/Temp/jpgraph_cache”);

DEFINE(“TTF_DIR”,”C:/WinNT/Fonts/”);

7)现在再打开Mantis的统计页面,可以看到多了分别按状态等进行统计的图形报表,包括柱图、饼图和线图;
8)不过如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的,JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码,解决方法是在Mantis\core\graph_api.php中增加对图形标题等设置字体的代码;
对于柱图和线图,要设置图形标题和x、y轴标题、节点标题:
//Set the title and axis font if the default_language is set to chinese   if (config_get(’default_language’) == ’chinese_simplified’){  

$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);  

$graph->xaxis->title->SetFont(FF_SIMSUN,FS_NORMAL);  

$graph->yaxis->title->SetFont(FF_SIMSUN,FS_NORMAL);  

$graph->xaxis->SetFont(FF_SIMSUN,FS_NORMAL);  

$graph->yaxis->SetFont(FF_SIMSUN,FS_NORMAL);   }   else if (config_get(’default_language’) == ’chinese_traditional’){  

$graph->title->SetFont(FF_CHINESE,FS_NORMAL);  

$graph->yaxis->title->SetFont(FF_CHINESE,FS_NORMAL);  

$graph->xaxis->title->SetFont(FF_CHINESE,FS_NORMAL);  

$graph->xaxis->SetFont(FF_CHINESE,FS_NORMAL);  

$graph->yaxis->SetFont(FF_CHINESE,FS_NORMAL);   };   

对于饼图,要设置图形标题和图例名称:
//Set the title and legend font if the default_language is set to chinese   if (config_get(’default_language’) == ’chinese_simplified’){  

$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);  

$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL);   }   else if (config_get(’default_language’) == ’chinese_traditional’){   $graph->title->SetFont(FF_CHINESE,FS_NORMAL);  

$graph->legend->SetFont(FF_CHINESE,FS_NORMAL);   };  

大家可以找到位置自己修改,简单的说就是在graph_api.php中每个“$graph->title->Set(…”后面根据当前的图表是柱图、线图还是饼图分别加上上面两段;
9)现在你的图形报表应该就可以显示中文了。

如果还是出现乱码,请使用以下方法:
mantis统计报表出现乱码的解决(windows下不要第四步)
(1)修改/mantis/jpgraph-2.2/src/jpgraph_ttf.inc.php 注释掉99-106行
//   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);
//   }
(2)修改/mantis/core/graph_api.php,添加’chinese_gbk’ => FF_SIMSUN,
function graph_get_font() {
  $t_font_map = array(
    ‘arial’ => FF_ARIAL,
    ‘verdana’ => FF_VERDANA,
    ‘courier’ => FF_COURIER,
    ‘comic’ => FF_COMIC,
    ‘times’ => FF_TIMES,
    ‘georgia’ => FF_GEORGIA,
    ‘trebuche’ => FF_TREBUCHE,
    ‘vera’ => FF_VERA,
    ‘veramono’ => FF_VERAMONO,
  ‘chinese_gbk’ => FF_SIMSUN,
    ‘veraserif’ => FF_VERASERIF );
(3)修改config_defaults_inc.php
  $g_graph_font = ‘chinese_gbk’;
(4)把C:\WINNT\Fonts\simsun.ttc与simhei.ttc拷贝到/usr/X11R6b/X11/fonts/truetype/下面