Mantis的图形报表配置:EasyPHP + Mantis + JPGraph

   这两天被这个东东搞得晕头转向,按照上网搜索到方法进行配置也总是不行,最后还是在摸索中终于搞清楚了问题所在。。。
   首先说明我使用的各软件的版本为:EasyPHP1-8、Mantis1.0.5、JPGraph1-20-5


以下对网上教程的详细说明(节选):

6.默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
1)下载JPGraph:从http://www.aditus.nu/jpgraph/index.php下载JPGraph的安装文件,目前最高版本是2.1.4;
  要特别注意版本问题,目前EasyPHP最高版本为1.8,其中用的PHP版本是4.x,所以JPGraph要用1.x版本,如果PHP是5.x,则要用JPGraph2.x才支持。

2)将下载下来的jpgraph解压缩到C:/EasyPHP/www目录下;
  这个关系不大,我是解压到 C:/EasyPHP/www/Mantis目录下的。

3)打开Mantis/config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;
  这里注意'ON'要大写,'On'是不正确的,$g_jpgraph_path一定要设置正确,否则打开图形报表都是××,我的设置为$g_jpgraph_path='./JPGraph1-20-5/src/',还要加一条,就是设置$g_default_language='chinese_simplified';这个没有设置也会导致图形报表出不来。


4)修改Windows目录下的PHP.ini文件,将“;extension=php_gd2.dll”和“;extension=php_iconv.dll”两行前面的分号删除;另外如果extension_dir项不正确,请把extension_dir改为正确的值(应该是extension_dir = "./extensions/",我这里不知道为什么是extension_dir = "./",大概就是因为使用懒人安装方法的缘故吧);
  这一步要注意extension_dir的路径和实际情况是否相同,因为我把安装目录下和windows目录下的PHP.ini文件都进行了修改,这里不确定是哪个文件起了作用。

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(…”后面根据当前的图表是柱图、线图还是饼图分别加上上面两段;

实际上,上面两段代码基本上要在每个相关函数中都加入,否则显示出来的图形还是部分有乱码,下面详细写出加入的地方:
第一处:函数graph_bar()中,在“$graph->yaxis->SetFont( $t_graph_font );”和“$p1 = new BarPlot( array_values( $p_metrics ) );”之间加入第一段代码。


第二处:函数graph_group()中,在“$graph->yscale->SetGrace(10);”和“#adds on the same graph”之间依次加入上面两段代码。


第三处:函数graph_group_pct()中,在“$graph->yaxis->scale->ticks->SetDirection(-1);”和“$p1 = new BarPlot($open_bug_count);”之间加入第一段代码。

 


第四处:函数graph_pie()中,在“$graph->legend->SetFont( $t_graph_font );”和“$p1 = new PiePlot3d( array_values( $p_metrics ) );”之间加入第二段代码。

 


第五处:函数graph_cumulative_bydate()中,在“$graph->xaxis->SetFont( $t_graph_font );”和“$p1 = new LinePlot($reported_plot, $plot_date);”之间依次加入上面两段代码。

 


第六处:函数error_check()中,在“$graph->title->SetFont( $t_graph_font, FS_BOLD );”和“$graph->AddText($txt);”之间加入第二段代码。

  此时大功告成,所有图形报表都不会出现乱码了。注意其中的“按分类统计”是针对所有项目的,只有选择所有项目后才能正确查看到此报表。

  如果版本没有问题,设置没有问题,又仍然没有出现图形报表,建议看看打开报表时的出错信息,此时有可能真是的某个文件有问题,我就遇到了graph_api.php文件里某个变量名不存在的情况,不过,如果是直接下载回来安装的话一般不会出现此问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值