Dotproject-설치
오픈소스로 제공되는 PMS (Project Management System)인 dotProject에서 설치 부분을 정리 한다.
설치 가이드
설치전 사전 준비 사항
- MySql Tools for 5.0 설치
- phpMyAdmin 설치 (옵션 사항으로 필요시 설치)
- PHP에 GD 확장팩 설치
- PHP에 GetText 확장팩 설치
- PHP에 IMAP 확장팩 설치
- PHP에 mysql, mysqli 확장팩 설치
dotProject용 DB 설정
- MySQL에 dotProject에서 사용할 Schmea를 등록한다.
- MySQL Administrator에 root 관리자로 로그인 한다.
- 좌측 상단 창에서 "Catalogs"를 선택한다.
- 좌측 하단의 "Schemata" 창에서 우측 마우스를 누른다.
- "Create New Schema" 메뉴를 선택하여 Schema를 생성한다.
- Schema 생성화면에서 "Schema name"으로 "dotprojectdb"를 입력한다.
- MySQL에 dotProject에서 사용할 사용자를 등록한다.
- 좌측 상단 창에서 "User Administration"을 선택한다.
- 좌측 하단의 "Users Accounts" 창에서 우측 마우스를 누른다.
- "Add new user" 메뉴를 선택하여 사용자를 생성한다.
- "User Information" 탭에서 "MySQL User"("dotproject"), "Password", "Confirm Password" 등을 등록한다.
- MySQL에 dotProject에서 사용할 사용자의 권한을 설정한다.
- "Schema Privileges" 탭에서 사용자가 사용할 Schema("dotprojectdb")를 선택한다.
- "Available Privileges"의 모든 권한을 "Assigned Privileges"로 이동한다.
- "Apply changes" 버튼을 눌려 등록된 정보를 저장한다.
- MySQL Query Browser에 접속한다.
- 사용자의 MySQL 데이터베이스 접속 정보를 추가한다.
- 우측의 "Schemata" 탭에서 "mysql"을 더블 클릭하여 선택한다.
- grant all privileges on dotprojectdb.* to dotproject@localhost identified by '암호'; (사용자에게 Schmea에 대한 권한을 추가)
- flush privileges; (위 명령을 통해 설정한 권한을 데이터베이스에 반영)
- select host, user, password from user order by user, host; (사용자의 접속 정보 확인)
-
- MySQL Query Browser가 아니라 DOS 창에서 접속 정보를 추가하는 방법
mysql -uroot -pxxx mysql grant all privileges on dotprojectdb.* to dotproject@localhost identified by '암호'; flush privileges; select host, user, password from user order by user, host; exit
dotProject 설치
- %APACHE_HOME%/conf/httpd.conf 파일에 dotproject 관련 정보를 추가하고 Apache를 재기동 한다.
- Windows Vista의 경우 관리자로 실행하여 수정한다.
<Directory /> Options FollowSymLinks AllowOverride None # Order deny,allow (이 라인을 주석으로 막는다) # Deny from all (이 라인을 주석으로 막는다) </Directory> ###----------------------------------------------- ### dotproject 설정, Document Root가 d:/www 일 경우 Alias /dotproject d:/www/dotproject <Directory "/dotproject"> Order allow,deny Allow from all </Directory>
- 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" 버튼을 눌러 설치를 시작한다.
- Database 접속 정보를 입력하고 "install db & write cfg" 버튼을 눌러 설치를 종료 한다.
- D:/OpenBiz/31_application/dotproject/install 폴더를 삭제한다.
- http://localhost/dotprojcet에 접속하여 admin / passwd 로 로그인 한다.
한글 설정
- 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'] = array ( $dir, 'Korean (KR)', 'Korean (KO)', 'kor'); $LANGUAGES['ko_KR'] = 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'])) > 25) // ? (substr(utf8_decode($p['project_name']), 0, 22) . '...') // : utf8_decode($p['project_name'])); // } else { // //while using charset different than UTF-8 we need not to use utf8_deocde $name = ((strlen($p['project_name']) > 25) ? (substr($p['project_name'], 0, 22).'...') : $p['project_name']) ; // } //--- 아래의 주석을 해제 한다. //$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'])) > 25) // ? (substr(utf8_decode($t['task_name']), 0, 22) . '...') // : utf8_decode($t['task_name'])); // $nameUser = $t['user_name']; // } else { // //while using charset different than UTF-8 we need not to use utf8_deocde $name = ((strlen($t['task_name']) > 25) ? (substr($t['task_name'], 0, 22) . '...') : $t['task_name']); $nameUser = $t['user_name']; // }
- 한글 파일 다운로드시 한글파일명이 깨어질 경우
vi D:/OpenBiz/31_application/dotproject/fileviewer.php header( 'Content-disposition: attachment; filename="'.$file['file_name'].'"' ); 를 header( 'Content-disposition: attachment; filename="'.iconv('utf-8','euc-kr',$file['file_name']).'"' ); 로 수정 한다.
- 날자 형식을 추가할 경우
vi D:/OpenBiz/31_application/dotproject/modules/system/addeditpref.php $f = "%Y.%m.%d"; $dates[$f] = $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]); //--- 아래 코드를 추가 한다. $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;
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
- /etc/init.d/apache2 restart
- http://localhost/dotprojct/로 접속하여 설치를 시작한다.
- 설치 완료 후 아래 작업을 추가로 진행한다.
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'] = array ( $dir, 'Korean (KR)', 'Korean (KO)', 'kor'); $LANGUAGES['ko_KR'] = 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'])) > 25) // ? (substr(utf8_decode($p['project_name']), 0, 22) . '...') // : utf8_decode($p['project_name'])); // } else { // //while using charset different than UTF-8 we need not to use utf8_deocde $name = ((strlen($p['project_name']) > 25) ? (substr($p['project_name'], 0, 22).'...') : $p['project_name']) ; // }
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'])) > 25) // ? (substr(utf8_decode($t['task_name']), 0, 22) . '...') // : utf8_decode($t['task_name'])); // $nameUser = $t['user_name']; // } else { // //while using charset different than UTF-8 we need not to use utf8_deocde $name = ((strlen($t['task_name']) > 25) ? (substr($t['task_name'], 0, 22) . '...') : $t['task_name']); $nameUser = $t['user_name']; // }
- 한글 파일 다운로드시 한글파일명이 깨어질 경우
vi /var/www/dotproject/fileviewer.php header( 'Content-disposition: attachment; filename="'.$file['file_name'].'"' ); 를 header( 'Content-disposition: attachment; filename="'.iconv('utf-8','euc-kr',$file['file_name']).'"' ); 로 수정 한다.
- 날자 형식을 추가할 경우
vi /var/www/dotproject/modules/system/addeditpref.php $f = "%Y.%m.%d"; $dates[$f] = $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']); $gtitle = $projects[$project_id]['project_name']; //--- 추가 } else { $gtitle = $projects[$project_id]['project_name']; }
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']; 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" );
- 이거 되나요? 토론:Dotproject-설치
문제 해결
- 작성 날짜 : 2010. 12. 21 ~
- dotproject 를 설치 및 한글화 하는데 있어서 나타나는 문제를 해결하는 문서이다.
- 2010. 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일 최종 작성
- /dotproject/locales/ko_KR 으로 복사
- 참고 : 위에 한글 설정 부분 참고
오른쪽 달력 문제 해결
- 처음 설치시 오른쪽 달력의 표시가 아래 그림과 같이 제대로 나오지 않음을 알 수 있다.
- 그림과 같이 바꿔 보자.
- \modules\calendar\calender.class.php
- line 239
$s .= $this->this_month->format("%Y년 ") . ($AppUI->_($this->this_month->format("%m월")) . (($this->clickMonth) ? '</a>' : )); //$s .= ($AppUI->_($this->this_month->format("%B")) . $this->this_month->format(" %Y") // . (($this->clickMonth) ? '</a>' : ));
- \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
<?php $locale_char_set='utf-8'; define('LOCALE_FIRST_DAY',0); define('LOCALE_TIME_FORMAT','%I:%M %p'); define('LOCALE_DATE_FORMAT','%Y.%m.%d'); ?>
- /modules/system/addeditpref.php (Line 102) 을 추가한다. 2007.01.07 형식.
- 시스템 관리 - 사용자 기본 설정 - 짧은 날짜 포멧 수정
$f = "%Y.%m.%d"; $dates[$f] = $ex->format( $f );
SMTP 이메일 설정
- 이메일을 다음과 같이 설정하기에 앞서서 원래 서버에 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 출력에서의 한글화의 문제점을 해결한다.
- 위와 같은 방법으로 할려니 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을 수정하여 인덱스를 만들어 기본 로딩 속도를 높인다.(자세한 사항은 링크를 참조)
간트 차트 이슈
- 간트 차트 한글화 및 요일 표시는 위에 내용 그대로 하면 잘된다.
- 이 챕터에서는 세부 추가 이슈에 대해서 다룬다
별칭 문제
- 간트 차트에서 한글 프로젝트명을 입력하고 별칭을 입력하지 않을시 별칭이 깨져서 보이는 증상이 나타난다.
- /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)
<input type="text" name="project_short_name" value="<?php echo dPformSafe(@$row->project_short_name) ;?>" size="3" maxlength="3" class="text" /> *
- 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'])) > 25) // ? (mb_substr(utf8_decode($p['project_name']), 0, 22) . '...') // : $p['project_name']); // } 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'], 0, 20,'utf-8').'...') // : $p['project_name']) ; // } $str = $p['project_name']; $len = 27; $checkmb = true; $tail = "..."; preg_match_all('/[\xEA-\xED][\x80-\xFF]{2}|./', $str, $match); $m = $match[0]; $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]) > 1)?2:1; if ($count + $tlen > $len) break; $ret[] = $m[$i]; } $name = join(, $ret).$tail;
}
모두 보기
- 모두 보기라는 링크가 있는데 이상하게 동작하지 않는다. (2.1.3)
- 2.1.4 에서는 동작하는 듯 하다.
- 2.1.3 에서 링크를 제거 함으로 해결 하였다.
- /module/projects/viewgannt.php (line 224~225)
//echo ("<a href='javascript:showThisMonth()'>" . $AppUI->_('show this month') // . "</a> : <a href='javascript:showFullProject()'>" . $AppUI->_('show all') . "</a><br />");