bugfreeHelper不支持新版bugfee解决方法

本文详细介绍了如何解决bugfree版本2.1.3与bugfeeHelper版本不匹配时,导致无法正确获取bug提交情况的问题。通过分析页面结构的变化,修改bugfeeHelper源代码中的数据获取逻辑,最终成功解决问题。
摘要由CSDN通过智能技术生成

今天下载了bugfeeHelper,配置完成以后,也登录成功,但是却接收不到bugfree的bug提交情况。

查看了bugfee的版本,发现是2.1.3,发布时间是2011年6月份,但是bugfreehelper最新版本是2008年6月份。

看了下bugfree的更新记录,发现对界面做了不少的更新,就怀疑是不是界面的改变,导致bugfreehelper拿不到数据。

于是就按这个思路查看了bugfreehelper的源代码,结果跟自己想到一样。

解决方法:(由于本人不会Delphi,只能通过该php了)

1.在得到最近的bug数的方法中,bugfreehelper是通过页面返回的记录结果来计算的

在bugfreehelper的MonitorBug.pas源代码可以找到

 

 TParamList.FindSubStr(Html, '<td style="text-align:left;border:0;width:30%">'#13#10, #13#10, Html);
  StartIndex := Pos('/', Html);
  if StartIndex <= 0 then Exit;
  StartIndex := StartIndex + 1;
  RecordStr := MidStr(Html, StartIndex, MaxInt);
  BugCount := StrToIntDef(RecordStr, 0);

 

 在之前版本的页面结构里,是“<td style="text-align:left;border:0;width:30%">”,

但是新版的改为“<td style="text-align:right;width:50%">”,只要将这个地方改为原来的样式就可以(对页面的影响不大)

bugfreehelper得到结果以后,是通过截取字符串来得到bug数的,新版的bugfree还是有点问题,需要去掉一些空格

将:

 

{$Lang.Pagination.Result} 
                {$PaginationDetailInfo.FromNum}-{$PaginationDetailInfo.ToNum}/{$PaginationDetailInfo.RecTotal}

 

 改为:

 

{$Lang.Pagination.Result} {$PaginationDetailInfo.FromNum}-{$PaginationDetailInfo.ToNum}/{$PaginationDetailInfo.RecTotal}

 

 这样就可以了

 

2.bug数是可以得到了,但是得到的结果却是不对的,是所有的bug数,而不是自己的bug数,对比了一下新版的查询包跟旧版的查询包,发现新版的多了几个参数(QueryFieldCountQueryRowOrder)。

  看了下bugfree的源代码,发现QueryFieldCount没有用到,而QueryRowOrder这个是用来计算一个有几个查询条件的。问题解决了。。。

就是原来旧版没有这个参数,导致查询条件都没有用上。修改方法如下:

在bugfree\Include\FuncModel.inc.php页面中,就如如下的判断,如果这个参数没有,就手动加上(大概在495行)

 

if($QueryRowOrderStr=='' || $QueryRowOrderStr==null){
		$QueryRowOrderStr='SearchConditionRow0,SearchConditionRow2,SearchConditionRow3,SearchConditionRow6,SearchConditionRow5,SearchConditionRow4';
	}

 

 加入这个的依据是原来使用了6个查询条件,在bugfreehelper源代码里也看到了如下的代码

 

UnclosedBugCountParam = 'AutoComplete=on&AndOr0=And&Field0=ProjectName&Operator0=%3D&' +
  'Value0=&AndOrGroup=AND&AndOr1=And&Field1=OpenedBy&Operator1=%3D&Value1=&' +
  'AndOr2=And&Field2=ModulePath&Operator2=LIKE&Value2=&AndOr3=And&' +
  'Field3=AssignedTo&Operator3=%3D&Value3=${username}&AndOr4=And&' +
  'Field4=BugID&Operator4=%3D&Value4=&AndOr5=And&Field5=BugTitle&' +
  'Operator5=LIKE&Value5=&PostQuery=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2%E5%86%85%E5%AE%B9&QueryType=Bug';

 

 这个是拼接查询条件的。

 

 

自此,这个问题就解决了。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值