我想过滤我的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());
所以需要的行被返回,另外当前项目被用来过滤。