Mantisのカスタマイズ

久しぶりに Mantis のセットアップをしました。現状の安定最新版は1.1.2、開発版が1.2.0a1ですね。

最初に開発版を入れてみた

Mantisは開発版に非常に便利な機能が実装されていることが多いです。つーことで開発版をセットアップ!

結果。。。惨敗(笑) なんか動作がおかしいところがたくさんありますね、4月ぐらいのバージョンなのでそろそろ次のバージョンがでるかな?

安定版に入れなおし

開発版には作業期限とか新しい項目が増えていたのですが、検索画面にて出てこなかったのと翻訳がまだ完全には完了していなかったので、安定版にダウングレードしました。

基本的にはデータ移行できたのですが、categoryのところが構造変更されていました。これまではcategoryって文字で保存されていたのですが、1.2系からはcategory_idに変わっていて別のテーブルで管理しています。

tagとかのデータ保存と同じですので、適正な変更だと思いますがデータ移行はちょっと面倒な気がしますね。

結局category_idからcategory名を引っ張ってくるSQLを実行して、結果をCSVに保存。それを読み込むって流れで作業しました。

設定

/mantis/config_inc.php

<?php

... // DB系は省略

// 日本語化
$g_default_language = 'japanese';

// ファイルアップ可能に
$g_allow_file_upload = ON;

// 検索画面の項目追加
$g_view_issues_page_columns = array( 'selection',
        'edit', 'priority', 'id', 'sponsorship_total',
        'bugnotes_count', 'attachment', 'category',
        'severity', 'status', 'custom_担当者',
        'last_updated', 'custom_期限日', 'summary' );

// メールなしでの登録可能に
$g_allow_blank_email = ON;

// WikiのTOPへのリンク追加
$g_main_menu_custom_options = array(
          array( "Pukiwiki", MANAGER, '/pukiwiki' ),
      );

カスタム項目でクライアントの担当者と、期限日を追加して見ましたので、検索にも追加。Wikiは項目に連動する方法がありますが、コメントで一連の流れを残したいのでTOPにのみリンクを増やしました。

日本語訳変更

/mantis/custom_strings_inc.php

<?php
$s_priority_enum_string = '10:できれば,20:低,30:中,40:高,50:重要,60:必須';

日本語に設定されているかをみて代入するのが本当ですが、どうせ日本語以外は設定しないだろうし(笑)

タグの日本語化

http://bacons.ddo.jp/wiki/mantis/tips/accept_japanese_tags

<?php
function tag_name_is_valid( $p_name, &$p_matches, $p_prefix="" ) {
    $t_ja_ptn = preg_quote("一-龠ぁ-んァ-ヴa-zA-Z0-9");
    $t_pattern = "/^$p_prefix([a-zA-Z0-9$t_ja_ptn][a-zA-Z0-9$t_ja_ptn-_. ]*)$/u";
    return preg_match( $t_pattern, $p_name, $p_matches );
}

標準だとアスキー文字だけなんですよね。なんでローマ字で登録されているんだろうって思ったらここでした。本当はここって翻訳のシステムを利用して言語ごとに使える文字を設定しないとだめですよね。もしくは記号系だけを消すかですね。

タグ名はDBに保存されているので、そちらを直接書き換えることで既存のタグ名を変更することもできます。

参考にしたサイト

http://www.alles.or.jp/~sogabe/mantis/
http://bacons.ddo.jp/wiki/mantis/

まずはこの2つのサイト両方全部見ないとだめっすね。一生懸命ソース読んだりして調べたことが後から検索したらここに書いてあったりする(笑)

感想

カスタム関数とか、1.2でプラグインが追加とかどんどん進化していますね。とくに1.2だとCSVだけだったら出力がExcelマインドマップになったりと進化していますね。

あとはグラフの部分を本当はGoogleChartで出力するとFontsの設定とかしなくてもいいので楽かな。いろいろ触りたいけれど手広くやりすぎているので、少し考えないとな。。。