MANTISというPHP&MySQLを使うトラックツールをカスタマイズしているのだが
My Viewというインシデント一覧を項目別にリスト表示する部分で躓いた。
MANTISにはカスタム項目という既存の項目にないものを追加できる仕組みがあるわけだが、
それを一覧に表示させたいのにできない…。
カスタム項目のデフォルトに設定した検索条件を既存の項目のようにさらってくれないので、いつまでたっても表示ができない。
検索画面の不要な項目を消したりはできても、ここがうまくいかないと意味がない。
本当は、アサインされる登録者が複数名指定できればこんなことしなくていいんだけど
MANTISの設計思想的には無理っぽいのでこう悩んでいるわけだが。
my_view_inc.phpの $c_filter['****'] = array()にカスタムIDを追記したあと、
どこをいじれば良いのかがわからない。
$t_cfid = *(カスタム項目のID値)
$c_filter['****'] = array(
'show_category' => Array ( '0' => META_FILTER_ANY ),
'show_severity' => Array ( '0' => META_FILTER_ANY ),
'show_status' => Array ( '0' => META_FILTER_ANY ),
'highlight_changed' => $t_default_show_changed,
'reporter_id' => Array ( '0' => META_FILTER_ANY ),
'handler_id' => Array ( '0' => META_FILTER_ANY ),
'show_resolution' => Array ( '0' => META_FILTER_ANY ),
'show_build' => Array ( '0' => META_FILTER_ANY ),
'show_version' => Array ( '0' => META_FILTER_ANY ),
'hide_status' => Array ( '0' => $t_hide_status_default ),
'custom_field_' . $t_cfid => Array ( '0' => META_FILTER_NONE )
)
$rows = filter_get_bug_rows ( $f_page_number, $t_per_page, $t_page_count, $t_bug_count, $c_filter[$t_box_title] );
$t_filter = array_merge( $c_filter[$t_box_title], $t_filter );
ここでフィルタ処理をしているはずなんだが、
どーにも追いかけても意味不明になってしまった。
所詮、プログラムなんぞできない自分が手を出す領域ではなかったのかも知れんないなぁ。
My Viewというインシデント一覧を項目別にリスト表示する部分で躓いた。
MANTISにはカスタム項目という既存の項目にないものを追加できる仕組みがあるわけだが、
それを一覧に表示させたいのにできない…。
カスタム項目のデフォルトに設定した検索条件を既存の項目のようにさらってくれないので、いつまでたっても表示ができない。
検索画面の不要な項目を消したりはできても、ここがうまくいかないと意味がない。
本当は、アサインされる登録者が複数名指定できればこんなことしなくていいんだけど
MANTISの設計思想的には無理っぽいのでこう悩んでいるわけだが。
my_view_inc.phpの $c_filter['****'] = array()にカスタムIDを追記したあと、
どこをいじれば良いのかがわからない。
$t_cfid = *(カスタム項目のID値)
$c_filter['****'] = array(
'show_category' => Array ( '0' => META_FILTER_ANY ),
'show_severity' => Array ( '0' => META_FILTER_ANY ),
'show_status' => Array ( '0' => META_FILTER_ANY ),
'highlight_changed' => $t_default_show_changed,
'reporter_id' => Array ( '0' => META_FILTER_ANY ),
'handler_id' => Array ( '0' => META_FILTER_ANY ),
'show_resolution' => Array ( '0' => META_FILTER_ANY ),
'show_build' => Array ( '0' => META_FILTER_ANY ),
'show_version' => Array ( '0' => META_FILTER_ANY ),
'hide_status' => Array ( '0' => $t_hide_status_default ),
'custom_field_' . $t_cfid => Array ( '0' => META_FILTER_NONE )
)
$rows = filter_get_bug_rows ( $f_page_number, $t_per_page, $t_page_count, $t_bug_count, $c_filter[$t_box_title] );
$t_filter = array_merge( $c_filter[$t_box_title], $t_filter );
ここでフィルタ処理をしているはずなんだが、
どーにも追いかけても意味不明になってしまった。
所詮、プログラムなんぞできない自分が手を出す領域ではなかったのかも知れんないなぁ。
確かに上記配列に登録をしないとMy view には表示されませんが
問題はその後の、配列で指定した処理がカスタム項目IDの場合、上手く検索処理で動かないのです。
おそらく、カスタム項目のIDを引き渡しに問題があり、フィルタされずにそのままリスト表示されているようです。
filter_api.php内の処理に上手く、$c_filter['****'] の内容を渡せれば
意図した動きが実現するのでしょうけど…。
http://www.alles.or.jp/~sogabe/mantis/manual/1.4.29.html
ここに追加した名前で1以上の物の$c_filterを表示していくみたいです(my_view_page.php)
ソースを見た限りカスタマイズされる前提じゃないので、バージョンあげた場合にまた更新する必要があります
検索で実現できるのであれば検索のフィルタで対応して、Permalinkを上のヘッダに追加するなどのほうが楽かもしれません