상단

오픈소스로 제공되는 PMS (Project Management System)인 dotProject에서 설치 부분을 정리 한다.

 

설치 가이드


설치전 사전 준비 사항

{{wamp 준비}}

 

dotProject용 DB 설정

{{MySQL DB 설정|dotProject|dotprojectdb|dotproject}}

 

dotProject 설치

{{Apache 접속 설정|dotproject}}

 
  • PHP의 세션 설정을 조정한다.

    • Drupal에서 문제가 발생하여 1로 변경 하지 않고 원래대로 0으로 설정하여 사용한다.

 
 vi D:/OpenBiz/31_application/php525/php.ini
     ; Initialize session on request startup.
     session.auto_start = 1

  • Apache HTTP Server를 재기동 한다.

 

  • 다운로드 사이트에서 dotProject 2.1.2의 설치 프로그램(dotproject-2.1.2.zip)을 다운로드 한다.

    • 다운로드한 파일의 압축을 풀어 "d:/OpenBiz/31_application/dotproject" 로 복사 한다.

 

  • http://localhost/dotprojct/로 접속하여 설치를 시작한다.

    • 설치와 관련된 요구사항을 만족하는지 확인하고 "Start Installation" 버튼을 눌러 설치를 시작한다.
      ![설치 준비](img/DotProject install 01.png)


  • Database 접속 정보를 입력하고 "install db & write cfg" 버튼을 눌러 설치를 종료 한다.
    ![설치 종료](img/DotProject install 02.png)


  • D:/OpenBiz/31_application/dotproject/install 폴더를 삭제한다.

 

 
 

한글 설정

  • KLDP의 dotproject 한글화 프로젝트에서 한글 파일을 다운로드(dp2.0.4_Locale_ko_kr_20060720_ver.0.5.tgz) 한다.

    • 압축을 풀어 D:/OpenBiz/31_application/dotproject/locales/ko_KR 로 복사 한다.

     
  • 한글 파일의 한글 정보를 설정한다.

    • D:/OpenBiz/31_application/dotproject/locales/ko_KR/lang.php를 다음과 같이 편집 한다.

 
 //$LANGUAGES['ko_KR']('ko_KR'.md) = array ( $dir, 'Korean (KR)', 'Korean (KO)', 'kor');
 $LANGUAGES['ko_KR']('ko_KR'.md) = array ( $dir, 'Korean', 'Korean', 'ko_KR');
 
  • http://localhost/dotproject에 관리자로 로그인 한다.

    • "System Admin" 탭을 선택 한다.

    • 시스템 구성에서 호스트 로케일을 "ko_KR"을 설정 한다.

    • "Default User Preferences" 링크를 선택한 후 locale를 "korean"으로 수정 한다.

      • 기타 관련 설정도 같이 변경 한다.

    • 로그아웃 후 다시 로그인하면 변경된 설정으로 화면이 표시된다.

     
  • 보고서 한글 설정

    • /modules/projects/reports/.txt 파일을 복사하여 /modules/projects/reports/.ko_KR.txt 작성

     
  • Gant Chart 한글 설정

    • 한글화 결과 확인은 "프로젝트" 탭 -> "Gantt" 탭에서 확인 한다.

      • 반드시 매번 로그아웃 후 다시 로그인 하여 확인 한다.

    • 앗! 무료 한글 폰트가 이렇게 많다니!!! 2에서 무료 한글 폰트를 다운로드 한다. 여기서는 나눔 명조를 사용한다.

    • 다운로드 받은 한글 폰트를 /var/www/dotproject/lib/fonts 에 복사 한다.

      • 나눔명조.ttf를 nanum.ttf로 나눔명조Bold.ttf를 nanumBold.ttf로 이름을 변경 한다.

      • vi D:/OpenBiz/31_application/dotproject/lib/jpgraph/src/jpgraph.php 에서 아래와 같이 수정 한다.

 
    DEFINE("FF_CUSTOM",18);를 추가 한다.
 
    FF_CUSTOM =>  array(FS_NORMAL=>'nanum.ttf', FS_BOLD=>'nanumBold.ttf', 
        FS_ITALIC=>'nanum.ttf', FS_BOLDITALIC=>'nanumBold.ttf')
- vi D:/OpenBiz/31_application/dotproject/modules/tasks/gantt.php  
    $graph->scale->actinfo->SetFont(FF_CUSTOM, FS_NORMAL, 8); 을
    $graph->scale->actinfo->SetFont(FF_CUSTOM);               로 수정 한다.
 
    if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
        //$name = utf8_decode($name);                         주석 처리 한다.
    }
- vi D:/OpenBiz/31_application/dotproject/modules/projects/gantt.php 에서 아래와 같이 주석 처리 한다.  
 //   if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
 //       $name = ((strlen(utf8_decode($p['project_name']('project_name'.md))) > 25)
 //             ? (substr(utf8_decode($p['project_name']('project_name'.md)), 0, 22) . '...')
 //               : utf8_decode($p['project_name']('project_name'.md)));
 //   } else {
 //       //while using charset different than UTF-8 we need not to use utf8_deocde
        $name = ((strlen($p['project_name']('project_name'.md)) > 25) 
              ? (substr($p['project_name'], 0, 22).'...') : $p['project_name']('project_name'.md)) ;
 //   }
 
 //--- 아래의 주석을 해제 한다.
 //$graph->scale->actinfo->SetFont(FF_CUSTOM);
 
- vi D:/OpenBiz/31_application/dotproject/modules/projects/gantt2.php 에서 아래와 같이 주석 처리 한다.  
 //   if ($locale_char_set=='utf-8' && function_exists('utf_decode')) {
 //       $name = ((strlen(utf8_decode($t['task_name']('task_name'.md))) > 25)
 //             ? (substr(utf8_decode($t['task_name']('task_name'.md)), 0, 22) . '...')
 //             : utf8_decode($t['task_name']('task_name'.md)));
 //       $nameUser = $t['user_name']('user_name'.md);
 //   } else {
 //       //while using charset different than UTF-8 we need not to use utf8_deocde
          $name = ((strlen($t['task_name']('task_name'.md)) > 25) 
                ? (substr($t['task_name']('task_name'.md), 0, 22) . '...')
                : $t['task_name']('task_name'.md));
          $nameUser = $t['user_name']('user_name'.md);
 //             }
 
  • 한글 파일 다운로드시 한글파일명이 깨어질 경우

 
 vi D:/OpenBiz/31_application/dotproject/fileviewer.php
    header( 'Content-disposition: attachment; filename="'.$file['file_name']('file_name'.md).'"' ); 를
    header( 'Content-disposition: attachment; 
            filename="'.iconv('utf-8','euc-kr',$file['file_name']('file_name'.md)).'"' ); 로 수정 한다.
 
  • 날자 형식을 추가할 경우

 
 vi D:/OpenBiz/31_application/dotproject/modules/system/addeditpref.php
    $f = "%Y.%m.%d"; $dates[$f]($f.md)     = $ex->format( $f ); 추가 (약 105 라인 정도에)
  • 관리자로 로그인하여 "시스템 관리" -> "사용자 기본설정" 메뉴에서 "짧은 날짜 포맷"을 방금 추가한 것으로 변경 한다.

  • 2.0.4 한글 팩을 2.1.2 한글팩으로 재작성

    • "시스템 관리" -> "번역 관리"에서 한글이 설정 되지 않았거나 잘 못 번역된 한글을 수정하여 저장한다.

 
 

Gantte 한글 추가 설정

위에서 설명한 것 처럼 한글 폰트를 설정하면 간트 챠트에서 한글을 볼 수 있으나 간트 챠트의 우측 부분(년, 월, 주, 요일 표시 부분)은 한글이 적용되지 않는다. 확인하여 본 결과 dotProject에서 지원하지 않는 기능으로 dotProject에 요청하여 한글 지원이 되도록 한 후 사용하여야 한다.
 
아래 정리된 사항은 나처럼 성격이 급한 사람을 위해 임시 조치 방법을 정리 한다.

 
  • $DOTPROJECT_HOME/lib/jpgraph/src/jpgraph_gantt.php.php 파일에서 아래와 같이 수정 한다. 단, 한글이 정상적으로 표시되도록 하기 위해서는 해당 파일을 UTF-8 형태로 저장하여야 한다.

    • StrokeYears(~) 함수 : 연 표시 함수

 
 $img->SetFont(FF_CUSTOM, FS_NORMAL, 8);  //--- 이 라인을 추가 한다.
 $img->StrokeText(round($xt+$yearwidth/2+1),
     round($yb-$this->year->iTitleVertMargin),
     $year."년");   //--- 여기에 ."년"을 추가 한다.
 
  • StrokeMonths(~) 함수 : 월 표시 함수

 
 $img->SetFont(FF_CUSTOM, FS_NORMAL, 8); //--- 이 라인을 추가 한다.
 //$img->StrokeText(round($xt+$monthwidth/2+1),  //--- 이 세줄을 지운다.
 //    round($yb-$this->month->iTitleVertMargin),
 //    $monthName);
 $img->StrokeText(round($xt+$monthwidth/2+1),    //--- 이 세줄을 추가 한다.
     round($yb-$this->month->iTitleVertMargin),
     ($monthnbr + 1)."월");
 
 // $img->StrokeText(round($x+$w/2+1),            //--- 이 두줄을 지운다.
 //     round($yb-$this->month->iTitleVertMargin),$monthName);
 $img->StrokeText(round($x+$w/2+1),              //--- 이 두줄을 추가 한다.
     round($yb-$this->month->iTitleVertMargin),($monthnbr + 1)."월");
 
  • StrokeWeeks(~) 함수 : 주 표시 함수

 
 elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY || 
     $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) 
     // $txt = date("j/n",$week);    //--- 이 라인을 지운다.
     $txt = date("n월 j일",$week);   //--- 이 라인을 추가 한다.
 
 $img->SetFont(FF_CUSTOM, FS_NORMAL, 8);
 //--- 위 코드를 추가 한다.
 $img->StrokeText(round($x+$txtOffset),
     round($yb-$this->week->iTitleVertMargin),$txt);
 
  • StrokeDays(~) 함수 : 요일 표시 함수

 
 $txt = strftime('%A',$datestamp);
 $txt = strtoupper($txt[0](0.md));
 //--- 아래 코드를 추가 한다.
 $txt = strftime('%a',$datestamp);
 if ($txt == "Mon") {
     $txt = "월";
 } else if ($txt == "Tue") {
     $txt = "화";
 } else if ($txt == "Wed") {
     $txt = "수";
 } else if ($txt == "Thu") {
     $txt = "목";
 } else if ($txt == "Fri") {
     $txt = "금";
 } else if ($txt == "Sat") {
     $txt = "토";
 } else {
     $txt = "일";
 }
 
 $img->SetFont(FF_CUSTOM, FS_NORMAL, 6);
 //--- 위 코드를 추가 한다.
 $img->StrokeText(round($x+$daywidth/2+1),
       round($yb-$this->day->iTitleVertMargin),$txt);
 

Linux용 설치 가이드


설치전 사전 준비 사항

  • Ubuntu Server 설치

  • MySQL DBMS 설치

  • Apach HTTP Server 설치

  • PHP 설치

 
 

MySQL에 DB와 사용자 생성

  • phpMyAdmin에 로그인 한다.

  • "새 데이터베이스 만들기" 에서 dotproject, utf8_unicode_ci 를 사용하여 데이터베이스를 생성한다.

  • "사용권한" 링크를 선택 한 후, "새 사용자 추가" 링크를 선택한다.

    • 사용자명에 "dotproject"을 등록하고 암호를 등록하고 Database for user 영역에서는 "create database with same name and grant all privileges"를 선택한 후 화면 하단의 "실행" 버튼을 선택하여 사용자를 추가한다.

  • phpMyAdmin의 첫 화면에서 좌측 메뉴의 mysql 링크를 선택한다.

    • "SQL" 탭을 선택한 후 아래 sql 문을 차례대로 실행한다.

 
 grant all privileges on DB명.* to 아이디명@localhost identified by '암호';
 flush privileges;
 select host, user, password from user order by user, host;
 
  • 참조 : [phpMyAdmin에서 DB Schema와 사용자 추가 설정](PhpMyAdmin.md#DB Schema와 사용자 추가 설정.md)

 
 

dotProject 설치

  • 다운로드 사이트에서 dotProject 2.1.2의 설치 프로그램(dotproject-2.1.2.tar.gz)을 다운로드 한다.

 

  • Document Root 폴더(/var/www)에 다운로드 받은 파일의 압축을 푼다.

 
 cd /var/www
 gzip -g dotproject-2.1.2.tar.gz
 tar xvf dotproject-2.1.2.tar
 chown -R 사용자아이디:그룹아이디 dotproject : 실제 사용할 사용자로 소유권을 변경한다.

  • 설치를 위해서 폴더의 권한을 변경한다.

 
 cd /var/www/dotproject
 chmod -R 777 files
 chmod -R 777 locales
 chmod -R 777 includes

  • PHP의 세션 설정을 조정한다.

 
 vi /etc/php5/apache2/php.ini
     ; Initialize session on request startup.
     session.auto_start = 1
 

  • 설치 완료 후 아래 작업을 추가로 진행한다.

 
 cd /var/www/dotproject
 rm -R install
 chmod -R 755 files
 chmod -R 755 locales
 chmod -R 755 includes
 
  • 첨부파일 업로드 다운로드 관련하여 폴더의 권한을 설정한다.

 
 cd /var/www/dotproject
 chmod -R 777 files
 또는
 chown -R www-data:www-data files
 

한글 설정

  • KLDP의 dotproject 한글화 프로젝트에서 한글 파일을 다운로드(dp2.0.4_Locale_ko_kr_20060720_ver.0.5.tgz) 한다.

  • 윈도우에서 dp2.0.4_Locale_ko_kr_20060720_ver.0.5.tar로 압축을 푼다.

  • dotProject에 한글 파일을 설치한다.

 
 cd /var/www/dotproject/locales tar xvf dp2.0.4_Locale_ko_kr_20060720_ver.0.5.tar
 cd ko_KR
 vi lang.php
 //$LANGUAGES['ko_KR']('ko_KR'.md) = array ( $dir, 'Korean (KR)', 'Korean (KO)', 'kor');
 $LANGUAGES['ko_KR']('ko_KR'.md) = array ( $dir, 'Korean', 'Korean', 'ko_KR');   
  • http://localhost/dotproject에 관리자로 로그인 한다.

    • "System Admin" 탭을 선택 한다.

    • "System Configuration" 링크를 선택한 후, Host Locale을 "ko_KR.UTF-8"로 수정 한다.

    • "Default User Preferences" 링크를 선택한 후 locale를 "korean"으로 수정 한다.

      • 기타 관련 설정도 같이 변경 한다.

  • 로그아웃 후 다시 로그인하면 변경된 설정으로 화면이 표시된다.

  • Gant Chart 한글 설정

    • 한글화 결과 확인은 "프로젝트" 탭 -> "Gantt" 탭에서 확인 한다.

      • 반드시 매번 로그아웃 후 다시 로그인 하여 확인 한다.

    • 앗! 무료 한글 폰트가 이렇게 많다니!!! 2에서 무료 한글 폰트를 다운로드 한다. 여기서는 옥션 고딕을 사용한다.

    • 다운로드 받은 한글 폰트를 /var/www/dotproject/lib/fonts 에 복사 한다.

 
 chown 사용자:그룹 *.ttf          : 웹에서 사용하는 사용자와 그룹으로 소유권을 변경 한다.
 
 vi /var/www/dotproject/lib/jpgraph/src/jpgraph.php 에서 아래와 같이 수정 한다.
    DEFINE("FF_CUSTOM",18);를 추가 한다.
 
    FF_CUSTOM =>  array(FS_NORMAL=>'AuctionGothic_Medium.ttf',
       FS_BOLD=>'AuctionGothic_Bold.ttf', FS_ITALIC=>'AuctionGothic_Medium.ttf',
       FS_BOLDITALIC=>'AuctionGothic_Bold.ttf')
 
 vi /var/www/dotproject/modules/tasks/gantt.php
    $graph->scale->actinfo->SetFont(FF_CUSTOM, FS_NORMAL, 8); 을
    $graph->scale->actinfo->SetFont(FF_CUSTOM);               로 수정 한다.
 
    if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
        //$name = utf8_decode($name);                         주석 처리 한다.
    }
 
 vi /var/www/dotproject/modules/projects/gantt.php 에서 아래와 같이 주석 처리 한다.
 //   if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
 //       $name = ((strlen(utf8_decode($p['project_name']('project_name'.md))) > 25)
 //             ? (substr(utf8_decode($p['project_name']('project_name'.md)), 0, 22) . '...')
 //               : utf8_decode($p['project_name']('project_name'.md)));
 //   } else {
 //       //while using charset different than UTF-8 we need not to use utf8_deocde
        $name = ((strlen($p['project_name']('project_name'.md)) > 25) 
              ? (substr($p['project_name'], 0, 22).'...') : $p['project_name']('project_name'.md)) ;
 //   }
 
 vi /var/www/dotproject/modules/projects/gantt2.php 에서 아래와 같이 주석 처리 한다.
 //   if ($locale_char_set=='utf-8' && function_exists('utf_decode')) {
 //       $name = ((strlen(utf8_decode($t['task_name']('task_name'.md))) > 25)
 //             ? (substr(utf8_decode($t['task_name']('task_name'.md)), 0, 22) . '...')
 //             : utf8_decode($t['task_name']('task_name'.md)));
 //       $nameUser = $t['user_name']('user_name'.md);
 //   } else {
 //       //while using charset different than UTF-8 we need not to use utf8_deocde
          $name = ((strlen($t['task_name']('task_name'.md)) > 25) 
                ? (substr($t['task_name']('task_name'.md), 0, 22) . '...')
                : $t['task_name']('task_name'.md));
          $nameUser = $t['user_name']('user_name'.md);
 //             }
 
  • 한글 파일 다운로드시 한글파일명이 깨어질 경우

 
 vi /var/www/dotproject/fileviewer.php
    header( 'Content-disposition: attachment; filename="'.$file['file_name']('file_name'.md).'"' ); 를
    header( 'Content-disposition: attachment; 
            filename="'.iconv('utf-8','euc-kr',$file['file_name']('file_name'.md)).'"' ); 로 수정 한다.
 
  • 날자 형식을 추가할 경우

 
 vi /var/www/dotproject/modules/system/addeditpref.php
    $f = "%Y.%m.%d"; $dates[$f]($f.md)     = $ex->format( $f ); 추가 (약 105 라인 정도에)
  • 관리자로 로그인하여 "시스템 관리" -> "사용자 기본설정" 메뉴에서 "짧은 날짜 포맷"을 방금 추가한 것으로 변경 한다.

  • 2.0.4 한글 팩을 2.1.2 한글팩으로 재작성

    • "시스템 관리" -> "번역 관리"에서 한글이 설정 되지 않았거나 잘 못 번역된 한글을 수정하여 저장한다.

 
 

FlexGantt 설치

  • Linux 환경에서 FlexGantt 1.0 RC 2.2, 2009.1.23를 설치 한다.

    • 다운로드 사이트에서 설치 프로그램을 다운로드 받아 dotProject의 해당 폴더로 복사한다.

 

  • vi /var/www/dotproject/lib/jpgraph/src/jpgraph_ttf.inc.php 에서 아래와 같이 수정 한다.

 
    FF_DEJAVU =>    array(FS_NORMAL => 'AuctionGothic_Medium.ttf',
            FS_BOLD => 'AuctionGothic_Bold.ttf',
            FS_ITALIC => 'AuctionGothic_Medium.ttf',
            FS_BOLDITALIC => 'AuctionGothic_Bold.ttf'
                            ),
    FF_DEJAVUMONO => array(FS_NORMAL => 'AuctionGothic_Medium.ttf',
            FS_BOLD => 'AuctionGothic_Bold.ttf',
            FS_ITALIC => 'AuctionGothic_Medium.ttf',
            FS_BOLDITALIC => 'AuctionGothic_Bold.ttf'
                            ),
    FF_VERA =>    array(FS_NORMAL       =>'AuctionGothic_Medium.ttf',
            FS_BOLD         =>'AuctionGothic_Bold.ttf',
            FS_ITALIC       =>'AuctionGothic_Medium.ttf',
            FS_BOLDITALIC   =>'AuctionGothic_Bold.ttf' ),
 
  • vi /var/www/dotproject/lib/jpgraph/src/jpgraph_gantt.php

 
    function GanttVLine($aDate,$aTitle="",$aColor="black",
                        $aWeight=3,$aStyle="dashed") {
        $this->title->SetFont(FF_DEJAVU, FS_BOLD, 8);  //--- 추가
        $this->title->Set($aTitle);
    }
 
  • vi /var/www/dotproject/modules/tasks/gantt.php

 
    if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
 //     $name = utf8_decode($name);  //--- 주석 처리 한다.
    }
 
        $graph->title->SetFont(FF_DEJAVU, FS_BOLD, 12);  //--- 추가
        if (function_exists('utf8_decode')) {
 //             $gtitle = utf8_decode($projects[$project_id]['project_name']('project_name'.md));
                $gtitle = $projects[$project_id]['project_name']('project_name'.md);  //--- 추가
        } else {
                $gtitle = $projects[$project_id]['project_name']('project_name'.md);
        }
 

PDF 다운로시 파일에 한글 설정

  • 트루타입 글꼴을 Adobe Type1 형식으로 변환하는 프로그램 설치

    • apt-get install ttf2pt1

 
 cp AuctionGothic_Bold.ttf /var/www/dotproject/lib/ezpdf/fonts
 ttf2pt1 -A AGBold.ttf
 *** PDF로 저장시 afm 폰트 파일이 정확하지 않아 페이지 제목의 한글이 깨어짐
     폰트 이름으로 Unicode를 사용하지 않는 폰트가 필요함
 
  • vi /var/www/dotproject/modules/tasks/gantt_pdf.php

 
        $name = $a['task_name']('task_name'.md);
        if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
 //             $name = utf8_decode($name);
        }
 
 function strJpGraph($text) {
 	global $locale_char_set;
 	if ( $locale_char_set=='utf-8' && function_exists("utf8_decode") ) {
 //		return utf8_decode($text);
 		return $text;
 	} else {
 		return $text;
 	}
 }
 
        function strEzPdf($text) {
            global $locale_char_set;
            if ( $locale_char_set=='utf-8' && function_exists("utf8_decode") ) {
 //                 return utf8_decode($text);
                    return $text;
            } else {
                    return $text;
            }
        }
 
 //     $pdf->selectFont( "$font_dir/Helvetica-Bold.afm" );
        $pdf->selectFont( "$font_dir/AuctionGothic_Bold.afm" );
 
 
 

문제 해결


  • 작성 날짜 : 2010. 12. 21 ~

  • dotproject 를 설치 및 한글화 하는데 있어서 나타나는 문제를 해결하는 문서이다.

    1. 11.19 업데이트된 최신 2.1.4 버젼을 기준으로 설명한다.

  • 테스트 환경 : windows 2008 server, Apache 2.2.11, PHP 5.3.0, MySql 5.1.36

 
 

DB 한글화 표시 문제

  • dotproject 를 설치 후에 DB 자체에서 한글화가 되지 않아 보고서, 연락처 포팅등에서 한글화 에러를 미리 방지 하기 위함이다.

  • 설치 후에 바로 수행 하기를 권장한다.

  • 참고 링크 : http://nesbbs.kldp.net/projects/dotproject-ko/forum/312353

  • FILE: include\db_adodb.php, LINE: 31. db_connect() 함수 마지막 부분

 
 mysql_set_charset( 'utf8', $db->_connectionID ); // 추가
 

전체적인 Locale 설정(한글화)

  • 최신 한글화 파일 : [dotProject 한글 파일, 2009년 3월 9일 최종 작성](Media:Ko KR 20090309.zip.md)

  • /dotproject/locales/ko_KR 으로 복사

  • 참고 : 위에 한글 설정 부분 참고

 
 

오른쪽 달력 문제 해결

  • 처음 설치시 오른쪽 달력의 표시가 아래 그림과 같이 제대로 나오지 않음을 알 수 있다.

  • 그림과 같이 바꿔 보자.
    [[image:달력전.png]] => image:달력후.png

  • \modules\calendar\calender.class.php

  • line 239

 
 $s .= $this->this_month->format("%Y년 ") . ($AppUI->_($this->this_month->format("%m월")) 
 . (($this->clickMonth) ? '' : ''));
 //$s .= ($AppUI->_($this->this_month->format("%B")) . $this->this_month->format(" %Y") 
 //       . (($this->clickMonth) ? '' : ''));
 
  • \modules\calendar\calender.class.php

  • line 277

 
 //		foreach ($wk as $day) {
 //			$s .= ("\n\t\t" . '' . $AppUI->_($day) . '');
 //		}
 		$s .= ("\n\t\t" . '' . "일" . '');
 		$s .= ("\n\t\t" . '' . "월" . '');
 		$s .= ("\n\t\t" . '' . "화" . '');
 		$s .= ("\n\t\t" . '' . "수" . '');
 		$s .= ("\n\t\t" . '' . "목" . '');
 		$s .= ("\n\t\t" . '' . "금" . '');
 		$s .= ("\n\t\t" . '' . "토" . '');
  • 2.1.3 에서는 line 277 과정이 필요없이 그냥 된다.

  • 저장시에 문자셋을 유니코드 UTF-8 으로 저장하여야 함

 
 

날짜 형식 변경

  • dotproject 특성상 연도표시가 한국 실정에 맞게 이루어 지지 않는다.

  • /locales/ko_KR/locale.php

 
 
  • /modules/system/addeditpref.php (Line 102) 을 추가한다. 2007.01.07 형식.

  • 시스템 관리 - 사용자 기본 설정 - 짧은 날짜 포멧 수정

 
 $f = "%Y.%m.%d"; 
 $dates[$f]($f.md) = $ex->format( $f );
 

SMTP 이메일 설정

image:이메일 설정.jpg

  • 이메일을 다음과 같이 설정하기에 앞서서 원래 서버에 smtp 가 동작하는지 제대로 테스트 하기 바란다.

  • 테스트가 안된다면 절때 dotproject에서 메일이 전송될 수 없다.

  • telnet 을 이용한 smtp 테스트

  • 꼭 이메일 큐에 체크 해제를 하라.

  • smtp 호스트에는 아이피 주소를 입력하라.

  • smtp 계정이 있다면 설정한 계정과 비번을 입력하라.

  • dotproject의 핵심기능이며 잘 동작하므로 꼭 설정해서 쓰기 바란다.

 
 

Company 분류 수정

  • 고객사 또는 회사 라고 번역된 company 부분에서 많은 분류를 줄이는 방법을 소개한다.

  • 영문기준 분류 : All Companies Client Vendor Supplier Consultant Government Internal Not Applicable

  • 데이터 베이스 수정을 통해 가능하다.

  • (table) Sysvals -> Companytype 을 수정한다.

 
 

이슈 에서의 report as PDF 한글화

  • 참고 자료 : http://blog.naver.com/PostView.nhn?blogId=sorendo&logNo=60018355059

  • 이슈 및 PDF 출력에서의 한글화의 문제점을 해결한다.

  • [ 위와 같은 방법](Dotproject-설치.md#PDF 다운로시 파일에 한글 설정 .md)으로 할려니 afm 이 제대로 생성되지 않아서 인지 안된다.

  • 참고자료를 참고하여 다음과 같은 파일을 해당 경로에 덮어 씌운다.

  • media:pdf 설정파일.zip 압축을 풀고 아래 위치에 덮어 씌운다.

  • \dotproject\modules\ticketsmith\pdf.php

  • \dotproject\lib\ezpdf\class.ezpdf.php

  • \dotproject\lib\ezpdf\class.pdf.php

  • pdf.php에서 center의 위치가 제대로 잡히지 않아서 left 설정하고 무식하게 띄워쓰기로 작업하였다.

  • 서버의 상황에 따라 pdf.php 를 쓰지 않고 제일 마지막줄 만 아래와 같이 수정해보아라.

 
 $pdf->kr_ezStream();
 //$pdf->ezStream();
 

dotproject의 속도 문제 해결

  • 참고 자료 : http://www.dotproject.net/vbulletin/showthread.php?p=29384

  • dotproject 사용 시 프로젝트의 작업 리스트가 많아지면 속도가 현저히 떨어진다.

  • 회사에서 프로젝트 운영 시 많은 사람들이 작업을 입력하고 쓰게되면 리스트를 불러오는데 응답 대기시간을 넘어서 리스트가 누락되어 읽히기도 하고 속도도 느리다.

  • SQL을 수정하여 인덱스를 만들어 기본 로딩 속도를 높인다.(자세한 사항은 링크를 참조)

 
 

간트 차트 이슈


  • 간트 차트 한글화 및 요일 표시는 위에 내용 그대로 하면 잘된다.

  • 이 챕터에서는 세부 추가 이슈에 대해서 다룬다
    1200px

별칭 문제

  • 간트 차트에서 한글 프로젝트명을 입력하고 별칭을 입력하지 않을시 별칭이 깨져서 보이는 증상이 나타난다.

  • /module/projects/addedit.php

 
 function setShort() {
 var f = document.editFrm;
 var x = 10;
 if (f.project_name.value.length < 11) { 
 	x = f.project_name.value.length;
 }
 if (f.project_short_name.value.length == 0) { 
 	//f.project_short_name.value = f.project_name.value.mb_substr(0,x); 주석처리!!
 }
 }
 
  • /module/projects/addedit.php (LINE 390)

 
  *
  • maxlength 를 3으로 줄여서 한글이 깨지지 않게 한다.

 
 

프로젝트 명 길이 문제

  • 한글 인코딩이나 substr, mb_substr, strlen, mb_strlen 의 내부적인 문제 때문에 프로젝트 명이 제대로 잘려서 보이지 않는다.

  • byte 수로 짜르면 한글 2byte 가 1byte 로 쪼게 질수도 있고

  • 글자수로 짜르면 영어 글자수와 한글 글자수의 한 자당 길이가 다르므로 영어가 많이 들어간 글자는 일찍 잘리는 문제가 있다.

  • UTF-8 환경에서 제대로 동작한다.

  • /module/projects/gannt.php (line 215~)

 
 
 // if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
 //	$name = ((mb_strlen(utf8_decode($p['project_name']('project_name'.md))) > 25) 
 //	         ? (mb_substr(utf8_decode($p['project_name']('project_name'.md)), 0, 22) . '...') 
 // 	         : $p['project_name']('project_name'.md));
 // } else {
 //while using charset different than UTF-8 we need not to use utf8_deocde
 //$name = ((mb_strlen($p['project_name'],'utf-8') > 20) ? (mb_substr($p['project_name']('project_name'.md), 0, 20,'utf-8').'...') 
 //       : $p['project_name']('project_name'.md)) ;
 // }
 $str = $p['project_name']('project_name'.md);
 $len = 27;
 $checkmb = true;
 $tail = "...";
 preg_match_all('/[\xEA-\xED][\x80-\xFF](\x80-\xFF.md){2}|./', $str, $match);
 
 $m    = $match[0](0.md);
 $slen = strlen($str);  // length of source string
 $tlen = strlen($tail); // length of tail string
 $mlen = count($m); // length of matched characters
 
 if ($slen <= $len) $name = $str;
 else if (!$checkmb && $mlen <= $len) $name = $str;
 else {
  $ret   = array();
  $count = 0;
 
  for ($i=0; $i < $len; $i++) {
     $count += ($checkmb && strlen($m[$i]($i.md)) > 1)?2:1;
 
 if ($count + $tlen > $len) break;
 $ret[] = $m[$i]($i.md);
 }
 $name =  join('', $ret).$tail;

}

 

모두 보기

  • 모두 보기라는 링크가 있는데 이상하게 동작하지 않는다. (2.1.3)

  • 2.1.4 에서는 동작하는 듯 하다.

  • 2.1.3 에서 링크를 제거 함으로 해결 하였다.

  • /module/projects/viewgannt.php (line 224~225)

 
 
 //echo ("" . $AppUI->_('show this month') 
 //	. " : " . $AppUI->_('show all') . "
");
 

보고서 및 메뉴얼


 
 

참고 문헌


 

분류: dotProject 
PMS

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :