1

定義済みのカスタム フィルターのみで 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_filterequals ですnull。ここで、常にすべてのバグが読み込まれていることがわかります。

私は試した

$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 のバグに対して高度なカスタム フィルタのみを使用することはできますか?

4

1 に答える 1

1

解決策は次のとおりです。配列からフィルター文字列を使用する必要があります$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());

したがって、必要な行が返され、さらに現在のプロジェクトがフィルター処理に使用されます。

于 2013-06-06T11:48:14.117 に答える