如何自定义MantisBT中的过滤器bug



我想过滤我的bug在MantisBT 1.2.14 只有通过一个定义的自定义过滤器。我可以使用

从数据库加载过滤器
$t_filter = filter_ensure_valid_filter( filter_get_row($t_filter_id) );

然后我尝试通过这个过滤器获得行:

$t_rows = filter_get_bug_rows( $f_page_number, $t_per_page, 
                               $t_page_count,$t_bug_count, $t_filter );

,除$t_filter = null外,其余参数均为

。这里的结果是,总是所有的bug都被加载。

我试着

$t_rows = filter_get_bug_rows( $f_page_number, $t_per_page, $t_page_count, 
                               $t_bug_count, $t_filter, $t_filter['project_id'] );

,它应该将项目设置为过滤器,但没有成功。

我也试着像螳螂的view_all_bug_page.php那样做:

$t_rows = filter_get_bug_rows( $f_page_number, $t_per_page, $t_page_count, 
                               $t_bug_count, null, null, null, true );

但这里(我猜)它是额外使用当前项目从缓存进行过滤。

是否可以在MantisBT中使用仅对bug 使用高级自定义过滤器,以及如何使用?

解决方案是:必须使用$t_filter数组中的过滤器字符串

# get filter string
$t_filter_string = explode('#', $t_filter['filter_string'], 2);
# get bug rows with unserialized filter string
$t_rows = filter_get_bug_rows($f_page_number, $t_per_page, $t_page_count, 
                              $t_bug_count, unserialize($t_filter_string[1]),
                              helper_get_current_project());

所以需要的行被返回,另外当前项目被用来过滤。

最新更新