MANTISのカスタマイズ 重要度、再現性、優先度の選択アイテムを少なくする。

バグ登録の時にリストで選択する項目を修正する依頼が来たのでやってみる。
いろいろ調べたが追加する例題はWEB上にあるのだが、削除(少なく)する例題は載っていないので、MANTIS本家のレシピを見ながら試行錯誤しながらやった結果を以下に。

今回は、重要度、再現性、優先度の種類があまりに多いので縮退してくれとの理由で修正する。

1・リストなのでmantisディレクトリのconfig_default_inc.phpファイル中から$g_で始まるエントリから重要度、再現性、優先度にあたるものをさがしだす。

2・まずはこの$g_で始まるdefaultの列挙型のアイテムを少々拝借させていただく。
ただし、config_default_inc.phpを変更するとバージョンアップ等の時に面倒なのでユーザ定義の位置付けであるconfig_default_inc.php中に変更後の列挙型を記述する。こうするとdefaultの列挙型がオーバライドされる。


# su
# vi /var/www/html/mantis/config_inc.php

$g_severity_enum_string = '10:feature,50:minor,60:major';
$g_priority_enum_string = '20:low,30:normal,40:high';
$g_reproducibility_enum_string = '10:always,30:sometimes,90:unable to duplicate';

これでOK。

ただし今回は文言の修正をしなければならない。(私の会社は台湾なのでchinese_traditonalの修正)
バージョンアップに備え、ユーザ定義のcustom_strings_inc.phpに修正の記述を書くとオーバライドされると書いているのでやってみる。

<?php
        if(lang_get_current()=='chinese_traditional'){
		$s_priority_enum_string =  '10:一般,50:嚴重,60:建議';
	} 
?>

しかしどういうわけか・・・


SYSTEM WARNING: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/html/mantis/custom_strings_inc.php:7)

APPLICATION ERROR #18
画面遷移に失敗しました。config_inc.phpやcustom_*.phpファイルのPHPブロック()の外側にスペースがないことを確認してください。

ブラウザの戻るボタンを使用して前のページに戻ってください。そこで、エラーで判明したチケットを直すか他のアクションを選択してください。もしくは、メニューバーからオプションで選択して、新しいセクションに直に進んでください。


んーーどうしたもんだろう?バージョン1.1.6のせいか?PHPのマニュアルを見ると、HTMLヘッダを送信した後に、こいつが送信されるからだそうだ。が、そんなことはしていないのできっとバージョンのせいだと納得しながら別の方法をこころみる。あ・・作成したcustom_strings_inc.phpは削除しないと。

3・MANTISディレクトリ下の文言を修正する。
原因判明(Cannot send session cache limiter - headers already sent)、すいません。
で今回は中国語の繁体の該当文言(config_inc.phpに設定した該当箇所のみ)を以下のように設定する。

どうも下に空白行があったのが原因。
削除したらOKです。したたがってcustom_strings_inc.php中に
<?php
	$wk = lang_get_current();
	switch($wk){
	case 'chinese_traditional':
		$s_reproducibility = '可重現性';
		$s_must_enter_reproducibility = '必須選擇可重現性';
		$s_email_reproducibility = '可重現性';
		$s_reproducibility = '可重現性';
		$s_must_enter_reproducibility = '必須選擇可重現性';
		$s_reproducibility_enum_string = '10:必然,30:有時,50:隨機,70:未測試,90:無法重現,100:N/A';
		$s_priority_enum_string = '10:無,20:低,30:中,40:高,50:緊急,60:立即';
		$s_severity_enum_string = '10:建議,20:不重要,30:文字,40:不耐壓,50:一般,60:嚴重,70:當機,80:咬住';
		$s_reproducibility_enum_string = '10:必然,30:有時,50:隨機,70:未測試,90:無法重現,100:N/A';
		break;
             }
?>

既にdefaultの列挙型の構成要素の数を少なく調整しているため、$s_で始まるローカライズ文言の列挙型の数は少なくする必要はない。つまり、修正したところだけ修正すればよい。