摘要:eGroupWare 公司群組管理電子化系統
這是一套免費的電子化管理系統,功能很多,可設定項目更是多,這篇只能協助您完成基本的架設。
相關連結:
eGroupWare官網
台灣PHP聯盟討論區--群組軟體--egroupware專區
JpGraph - PHP Graph Creating Library
Graphviz - Graph Visualization Software
OpenFlow-OpenSource Workflow Management System
經過一番努力測試,總算是成功了 ^_^
使用
Apache2Triad 1.5.4 (WinXP SP2)
eGroupWare 1.2RC8 (內建多國語言含繁體中文 UTF8 版本)
JpGraph 2.1.1 (for PHP5 only)
使用專案管理時需要它才能顯示甘特圖
GraphViz Windows 2.8 版
使用工作流程管理時需要它才能顯示流程圖
安裝完 Apache2Triad 修改 php.ini 把
track_errors = On
改成
track_errors = Off
其他需要的修改,請參考
flyup 的 Apache2Triad 架站包及我的
Apache2Triad 架站包已有 1.5.4 版(2006-02-20)解壓縮 eGroupWare 1.2RC8 到
\apache2triad\htdocs\egroupware\
解壓縮 JpGraph 2.1.1 到
\apache2triad\htdocs\jpgraph\
安裝 GraphViz,安裝後要重新開機,它預設會把自己加入路徑中。
把附件 class.ganttchart.inc.php 蓋到
\apache2triad\htdocs\egroupware\projectmanager\inc\
目錄下
把附件 jpgraph.php 蓋到
\apache2triad\htdocs\jpgraph\src\
目錄下
開始安裝:
執行 http://localhost/egroupware/setup 進行安裝。
安裝步驟可參考
台灣PHP聯盟討論區 kiang 大大的
圖文教學1 圖文教學2在 Windows 的環境下,唯一需要注意的是,在目錄及路徑名稱的設定,請不要使用 \ 改用 / 例如,工作目錄放在 d:\work\files 目錄下,在設定時,請使用 d:/work/files 這樣可以減少許多問題喔。
有任何問題或使用心得分享,可以到
台灣PHP聯盟討論區--群組軟體--egroupware專區一起討論。
【註】要注意的是,我的作法是新增一個 Font Family 為 FF_UTF8 並設定它的字型為 新細明體 mingliu.ttc (因為我還是認為簡單的比較好看),同時,把 class.ganttchart.inc.php 需要使用中文的部分字型設為 FF_UTF8,還需要把字型加大,至少要 9 以上顯示才會正常。
【註】附件放在
台灣PHP聯盟討論區--群組軟體--egroupware專區內。
【註】class.ganttchart.inc.php 修改
# #-----[ OPEN ]------------------------------------------ # /egroupware/projectmanager/inc/class.ganttchart.inc.php # #-----[ FIND ]------------------------------------------ # line 17 define('TTF_DIR',EGW_SERVER_ROOT.'/projectmanager/inc/ttf-bitstream-vera-1.10/'); # #-----[ MODIFY ]------------------------------------------ # //<2006-03-30> remarked Using JpGraph TTF_DIR Setting //define('TTF_DIR',EGW_SERVER_ROOT.'/projectmanager/inc/ttf-bitstream-vera-1.10/'); # #-----[ FIND ]------------------------------------------ # line 223 // Change the font scale $graph->scale->week->SetFont(FF_VERA,FS_NORMAL,8); $graph->scale->year->SetFont(FF_VERA,FS_BOLD,10); // Title & subtitle $graph->title->Set($title); $graph->title->SetFont(FF_VERA,FS_BOLD,12); $graph->subtitle->Set($subtitle); $graph->subtitle->SetFont(FF_VERA,FS_NORMAL,10); # #-----[ MODIFY ]------------------------------------------ # // Change the font scale $graph->scale->week->SetFont(FF_VERA,FS_NORMAL,8); // <2006-03-30> Keep FF_VERA $graph->scale->year->SetFont(FF_VERA,FS_NORMAL,10); // <2006-03-30> Keep FF_VERA, FS_BOLD -> FS_NORMAL // Title & subtitle $graph->title->Set($title); $graph->title->SetFont(FF_UTF8,FS_NORMAL,12); // <2006-03-30> FF_VERA -> FF_UTF8, FS_BOLD -> FS_NORMAL $graph->subtitle->Set($subtitle); $graph->subtitle->SetFont(FF_UTF8,FS_NORMAL,10); // <2006-03-30> FF_VERA -> FF_UTF8 # #-----[ FIND ]------------------------------------------ # line 265 $bar->title->SetFont(FF_VERA,FS_BOLD,!$level ? 9 : 8); # #-----[ MODIFY ]------------------------------------------ # $bar->title->SetFont(FF_UTF8,FS_NORMAL,!$level ? 10 : 9); // <2006-03-30> FF_VERA -> FF_UTF8, FS_BOLD -> FS_NORMAL # #-----[ FIND ]------------------------------------------ # line 302 echo "<p>GanttBar($line,'".($level ? str_repeat(' ',$level) : ''). $GLOBALS['egw']->translation->convert($title,$this->charset,'iso-8859-1').' '."','". date('Y-m-d H:i',$pe['pe_start'])."','".date('Y-m-d H:i',$pe['pe_end'])."','". round($pe['pe_completion']).'%'."',0.5)</p>\n"; # #-----[ MODIFY ]------------------------------------------ # echo "<p>GanttBar($line,'".($level ? str_repeat(' ',$level) : ''). // <2006-03-30> remarked no need to convert // $GLOBALS['egw']->translation->convert($title,$this->charset,'iso-8859-1').' '."','". $title.' '."','". date('Y-m-d H:i',$pe['pe_start'])."','".date('Y-m-d H:i',$pe['pe_end'])."','". round($pe['pe_completion']).'%'."',0.5)</p>\n"; # #-----[ FIND ]------------------------------------------ # line 312 $bar =& new GanttBar($line,($level ? str_repeat(' ',$level) : ''). // the GanttBar title has somehow to be iso-8859-1 $GLOBALS['egw']->translation->convert($title,$this->charset,'iso-8859-1'). ($level ? ' ' : ''), // fix for wrong length calculation in JPGraph date('Y-m-d'.($this->modernJPGraph ? ' H:i' : ''),$pe['pe_start']), date('Y-m-d'.($this->modernJPGraph ? ' H:i' : ''),$pe['pe_end']), round($pe['pe_completion']).'%',0.5); # #-----[ MODIFY ]------------------------------------------ # $bar =& new GanttBar($line,($level ? str_repeat(' ',$level) : ''). // the GanttBar title has somehow to be iso-8859-1 // <2006-03-30> remarked no need to convert, JpGraph support UTF8 // $GLOBALS['egw']->translation->convert($title,$this->charset,'iso-8859-1'). $title. ($level ? ' ' : ''), // fix for wrong length calculation in JPGraph date('Y-m-d'.($this->modernJPGraph ? ' H:i' : ''),$pe['pe_start']), date('Y-m-d'.($this->modernJPGraph ? ' H:i' : ''),$pe['pe_end']), round($pe['pe_completion']).'%',0.5); $bar->title->SetFont(FF_UTF8,FS_NORMAL,10); // <2006-03-30> Set FONT # #-----[ FIND ]------------------------------------------ # line 353 $ms =& new MileStone($line,($level ? str_repeat(' ',$level) : ''). // the Milestone title has somehow to be iso-8859-1 $GLOBALS['egw']->translation->convert($milestone['ms_title'],$this->charset,'iso-8859-1'), date('Y-m-d',$milestone['ms_date']), date($this->prefs['common']['dateformat'],$milestone['ms_date'])); $ms->title->SetFont(FF_VERA,FS_ITALIC,8); # #-----[ MODIFY ]------------------------------------------ # $ms =& new MileStone($line,($level ? str_repeat(' ',$level) : ''). // the Milestone title has somehow to be iso-8859-1 // <2006-03-30> remarked no need to convert, JpGraph support UTF8 // $GLOBALS['egw']->translation->convert($milestone['ms_title'],$this->charset,'iso-8859-1'), $milestone['ms_title'], date('Y-m-d',$milestone['ms_date']), date($this->prefs['common']['dateformat'],$milestone['ms_date'])); $ms->title->SetFont(FF_UTF8,FS_NORMAL,9); // <2006-03-30> FF_VERA -> FF_UTF8, FS_ITALIC -> FS_NORMAL, 8->9 # #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # # EoM
【註】 jpgraph.php 修改
# #-----[ OPEN ]------------------------------------------ # /jpgraph/src/jpgraph.php # #-----[ FIND ]------------------------------------------ # // Chinese font DEFINE("FF_SIMSUN",30); DEFINE("FF_CHINESE",31); DEFINE("FF_BIG5",31); # #-----[ MODIFY ]------------------------------------------ # // Chinese font DEFINE("FF_UTF8",29); // <2006-03-30> add by dllee DEFINE("FF_SIMSUN",30); DEFINE("FF_CHINESE",31); DEFINE("FF_BIG5",31); # #-----[ FIND ]------------------------------------------ # FF_ARIAL => array(FS_NORMAL=>'arial.ttf', FS_BOLD=>'arialbd.ttf', FS_ITALIC=>'ariali.ttf', FS_BOLDITALIC=>'arialbi.ttf' ) , FF_VERA => array(FS_NORMAL=>'Vera.ttf', FS_BOLD=>'VeraBd.ttf', FS_ITALIC=>'VeraIt.ttf', FS_BOLDITALIC=>'VeraBI.ttf' ), FF_VERAMONO => array(FS_NORMAL=>'VeraMono.ttf', FS_BOLD=>'VeraMoBd.ttf', FS_ITALIC=>'VeraMoIt.ttf', FS_BOLDITALIC=>'VeraMoBI.ttf' ), FF_VERASERIF => array(FS_NORMAL=>'VeraSe.ttf', FS_BOLD=>'VeraSeBd.ttf', FS_ITALIC=>'', FS_BOLDITALIC=>'' ) , # #-----[ AFTER, ADD ]------------------------------------------ # FF_UTF8 => array(FS_NORMAL=>'mingliu.ttc', FS_BOLD=>'mingliu.ttc', FS_ITALIC=>'mingliu.ttc', FS_BOLDITALIC=>'mingliu.ttc' ), // <2006-03-30> # #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # # EoM