5/22/2009

mantis..

Mantis Guide For Novices

작성자 : 이현구 (nethyun9@gmail.com)

작성일 : 2006. 07. 21

 

 

Ⅰ. Manits Installation Guide For Linux

작성자 사용 Linux : Ubuntu 6.06 Dapper Drake

 

① APM 설치

Mantis를 설치하려면 APM(Apache, PHP, MySQL)이 설치되어 있어야 한다.

APM설치는 X-Window에서 Synaptic Package Manager를 사용하거나 터미널에서 apt-get, yum, rpm등을 사용. 또는, 소스를 직접 받아서 인스톨한다.

APM설치에 대한 자세한 설명은 생략한다.

 

② DB 액세스 계정 생성

Mantis를 인스톨하려면 DB에 접근가능한 계정이 있어야한다.

계정에 DB권한을 주려면 mysql에 접속해서

             mysql -u root

mantis를 설치할 계정에 DB Access 권한을 부여한다.

             > GRANT ALL ON mantis.* to id@hostname IDENTIFIED BY 'Password'; (hostname은 대개 localhost이다.)

 

③ 다운로드 및 압축 풀기

설치할 장소(/var/www/)에서 Mantis를 다운받는다.

             wget http://nchc.dl.sourceforge.net/sourceforge/mantisbt/mantis-1.0.3.tar.gz

압축을 푼다.

             tar -zxvf mantis-1.0.3.tar.gz

폴더 이름을 원하는 이름으로 변경한다.

             mv mantis-1.0.3 mantis

 

④ 인스톨

             브라우저에서 http://localhost/mantis/admin/install.php실행 (http://localhost/mantis까지만 입력해도 된다.)

이후에 입력란을 알맞게 채워서 인스톨을 진행한다.

 

* 인스톨 두 번째 단계 'Checking PHP support for database type'에서 BAD가 발생하고

database is not supported by PHP. Check that it has been compiled into your server.라는 메시지가 나타날 경우

             vi /etc/php5/apache2/php.ini에서

 

        ;;;;;;;;;;;;;;;;;;;;;;

        ; Dynamic Extensions ;

        ;;;;;;;;;;;;;;;;;;;;;;

부분을 찾아서

             ; extesion=mysql.so

             ; extesion=db.so

;를 제거한다.

 

 

⑤ config_inc.php 설정
config_inc.php.sample을 config_inc.php로 수정하고 내용을 알맞게 수정한다.

 

 

 

* Mantis를 실행했을 때 - SYSTEM WARNING: htmlspecialchars(): charset `euc-kr' not supported, assuming iso-8859-1 메시지 발생할 경우

htmlspecialchars() 함수가 euc-kr을 지원하지 않아서 발생하는 문제이며 utf-8을 사용해야 한다.

1. config_inc.php에 다음 내용 추가

             //$g_default_language             = 'korean';

 

             $g_default_language             = 'auto';

 

             # list the choices that the users are allowed to choose

             $g_language_choices_arr = array(

                           'auto',

                           'chinese_simplified',

                           'chinese_traditional',

                           'croatian',

                           'czech',

                           'danish',

                           'dutch',

                           'english',

                           'estonian',

                           'finnish',

                           'french',

                           'german',

                           'hungarian',

                           'italian',

                           'japanese_euc',

                           'japanese_sjis',

                           'japanese_utf8',

                           //'korean',

                           'korean_utf8',

                           'latvian',

                           'lithuanian',

                           'norwegian',

                           'polish',

                           'portuguese_brazil',

                           'portuguese_standard',

                           'romanian',

                           'russian',

                           'russian_koi8',

                           'serbian',

                           'slovak',

                           'slovene',

                           'spanish',

                           'swedish',

                           'turkish',

                           'ukrainian'

             );

 

             $g_language_auto_map = array(

                           'en-us, en-gb, en-au, en' => 'english',

                           'zh-cn, zh-sg, zh' => 'chinese_simplified',

                           'zh-hk, zh-tw' => 'chinese_traditional',

                           'cs' => 'czech',

                           'da' => 'danish',

                           'nl-be, nl' => 'dutch',

                           'et' => 'estonian',

                           'fi' => 'finnish',

                           'fr-be, fr-ca, fr-ch, fr' => 'french',

                           'de-de, de-at, de-ch, de' => 'german',

                           'hu' => 'hungarian',

                           'it-ch, it' => 'italian',

                           'ja' => 'japanese_utf8',

                           'ko' => 'korean_utf8',

                           'lt' => 'lithuanian',

                           'no' => 'norwegian',

                           'pl' => 'polish',

                           'pt-br' => 'portugese_brazil',

                           'pt' => 'portugese_standard',

                           'ro-mo, ro' => 'romanian',

                           'ru-mo, ru' => 'russian',

                           'sr' => 'serbian',

                           'sk' => 'slovak',

                           'sl' => 'slovene',

                           'es-mx, es-co, es-ar, es-cl, es-pr, es' => 'spanish',

                           'sv-fi, sv' => 'swedish',

                           'tr' => 'turkish'

             );

 

2. 또는, config_default_inc.php Line 352

             'korean','korean_utf8',

Line 386

             'ko' => 'korean','ko' => 'korean_uft8', 로 변경

 

 

 

* 메일 발송시 문자 인코딩이 깨지는 경우

/core/email_api.php Line 678

             $mail->CharSet = lang_get( 'charset', lang_get_current() );

             $mail->CharSet = "UTF-8"; 으로 수정

 

 

 

 

 

 

 

Ⅱ. Mantis Customizing Tip

Mantis Version : 1.0.3

 

* 이슈 보기 페이지에서 날짜 형식 바꾸기

config_default_inc.php Line 526

             $g_short_date_format       = 'm-d-y'; 에서 m-d-y의 순서를 수정

 

Y를 대문자로 표시하면 연도가 네 자리로 표시된다.

ex) 'Y-m-d'로 수정시 '2006-07-12'와 같이 표시됨

 

 

 

* 이슈 자세히 보기 페이지에서 첨부된 이미지 바로 보이게 하기

config_default_inc.php Line 837

             $g_preview_attachments_inline_max_size = 0; 의 값을 변경

 

입력한 값 이하의 크기를 갖는 이미지는 바로 보이게 된다.

단위는 바이트이다.

 

 

 

* 이슈 번호, 이슈 노트 번호 표시되는 자리수 변경하기

이슈 번호 : config_default_inc.php Line 1148

             $g_display_bug_padding = 7; 의 값을 변경

 

이슈 노트 번호 : Line 1152

             $g_display_bugnote_padding       = 7; 의 값을 변경

 

입력한 값의 자리수로 표시된다.

 

 

 

* 이슈 보기 페이지에서 날짜 형식 바꾸기

config_default_inc.php Line 180~205

             $t_columns[] = 'selection';

 

             if ( $p_columns_target == COLUMNS_TARGET_VIEW_PAGE ) {

                           $t_columns[] = 'edit';

             }

 

             $t_columns[] = 'priority';

             $t_columns[] = 'id';

 

             $t_enable_sponsorship = config_get( 'enable_sponsorship' );

             if ( ON == $t_enable_sponsorship ) {

                           $t_columns[] = 'sponsorship_total';

             }

 

             $t_columns[] = 'bugnotes_count';

 

             $t_show_attachments = config_get( 'show_attachment_indicator' );

             if ( ON == $t_show_attachments ) {

                           $t_columns[] = 'attachment';

             }

 

             $t_columns[] = 'category';

             $t_columns[] = 'severity';

             $t_columns[] = 'status';

             $t_columns[] = 'last_updated';

             $t_columns[] = 'summary';

 

selection(선택박스)이나, bugnote_count(이슈 노트 개수)등 잘 사용하지 않는 항목을 삭제하고 roporter_id(보고자)를 추가하는 식으로 수정할 수 있다.

 

 

 

* 상태 추가하기

config_default_inc.php Line 1621

             $g_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved,90:closed';

에서 원하는 위치에 상태 번호와 상태 이름을 추가한다.

이슈 보기 화면이나 상태 변경에서 상태가 여기에 입력한 순서대로 나타난다.

상태 번호가 80 미만이면 상태 변경 화면의 입력 폼이 앞의 상태들과 마찬가지로 '이슈 할당', '이슈노트 추가', '상태 보기'로 이루어지며,

80번 이후로는 '해결 상태', '중복된 이슈 번호', '해결된 버전', '이슈 할당', '이슈노트 추가', '상태 보기'로 이루어진다.

따라서, 추가할 이슈의 성격에 알맞는 번호대로 추가해야 한다.

주의할 점은, 상태 번호를 90 이후로 하면 CLOSED(폐쇄된 이슈)에 포함되기 때문에 이슈 보기 페이지에서 숨김 상태로 된다는 것이다.

 

config_default_inc.php Line 1134~1140

             $g_status_colors = array(             'new'                               => '#ffa0a0', # red,

                                                                  'feedback'                        => '#ff50a8', # purple

                                                                  'acknowledged'  => '#ffd850', # orange

                                                                  'confirmed'                      => '#ffffb0', # yellow

                                                                  'assigned'                       => '#c8c8ff', # blue

                                                                  'resolved'                        => '#cceedd', # buish-green

                                                                  'closed'              => '#e8e8e8'); # light gray

상태 이름과 원하는 색상을 RGB값으로 입력한다.

 

 

/lang/string_korean_utf8.txt Line 291

             $s_status_enum_string = '10:새로운 이슈,20:정보 부족,30:이슈 검토,40:확인된 이슈,50:할당된 이슈,80:해결된 이슈,90:폐쇄된 이슈';

config_default_inc.php line 1621에 대응하게 한글 상태이름을 입력한다.

 

/lang/string_korean_utf8.txt Line 475

             # bug_change_status_page.php

             $s_new_bug_title = '새로운 이슈';

             $s_feedback_bug_title = '정보 부족';

             $s_acknowledged_bug_title = '이슈 검토';

             $s_confirmed_bug_title = '확인된 이슈';

             $s_assigned_bug_title = '할당된 이슈';

             $s_new_bug_button = '새로운 이슈';

             $s_feedback_bug_button = '정보 부족';

             $s_acknowledged_bug_button = '이슈 검토';

             $s_confirmed_bug_button = '확인된 이슈';

             $s_assigned_bug_button = '할당된 이슈';

부분에

             $s_상태이름_bug_title = '한글 상태이름';

             $s_상태이름_button = '한글 상태이름';식으로 내용을 추가한다.

 

 

 

 

 

 

 

Ⅲ. Mantis에 JpGraph 적용

JpGraph Version : 1.20.4

 

JpGraph Installation

 

JpGraph는 GD Library를 이용해서 PHP에서 그래프를 그려주는 도구이다.

Mantis에 JpGraph가 적용되면 요약 페이지에서 그래프를 볼 수 있다.

 

① JpGraph를 사용하려면 GD Library가 설치되어 있어야 한다.

GD Library는 apt-get install libgd2 등의 방법으로 설치한다.

 

② http://www.aditus.nu/jpgraph/jpdownload.php에서 JpGraph를 다운받아서 설치한다.

JpGraph는 인스톨이 필요 없고 원하는 장소에 압축을 풀어서 설치하면 된다.

ex) /var/www/jpgraph/

 

③ 설치 후, Mantis의 config_inc.php에 다음 내용 추가

             $g_use_jpgraph = ON;

             $g_jpgraph_path = '../jpgraph/src/';          (끝에 /를 반드시 붙여야 한다.)

 

 

JpGraph에서 한글 사용하기

 

Mantis의 config_default_inc.php Line 166

             $g_system_font_folder     = 'c:/winnt/fonts/';

폰트(gulim.ttc) 경로를 실제 위치로 입력한다.

ex) /usr/X11R6/lib/X11/fonts/truetype/

 

config_inc.php에 다음 내용 추가

             $g_graph_font = 'gulim';

 

/core/graph_api.php Line 25

             $t_font_map = array(); 에

             'gulim' => FF_GULIM, 추가

 

 

JpGraph/src/jpgraph.php Line 3138

             FF_GULIM => array(FS_NORMAL=>'gulim.ttc', FS_BOLD=>'gulim.ttc', FS_ITALIC=>'gulim.ttc', FS_BOLDITALIC=>'gulim.ttc' ), 추가

 

src/gd_image.inc.php Line 27에

             // Korean font

             DEFINE("FF_GULIM",35); 추가

 

Line 1348

             $txt = $this->langconv->Convert($txt,$this->font_family); 아래

             $txt = mb_convert_encoding( $txt, "UTF-8", "auto"); 추가

 

 

 

Mantis에 새로 추가된 상태를 JpGraph에 반영하기

Mantis의 /graphs/graph_assigned_to_me.php 를 수정해야 한다.

내용이 간단하기 때문에 설명은 생략한다.

[출처] Mantis 설치 Guide|작성자 hauce96

No comments:

Post a Comment