摘要: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