preload
一月 22


以下文章擷取自: http://a-wei.net/archives/86

有幾項需要注意的地方在此特別點出來。

1.如果你跟我一樣 mysql 資料庫不是完全設定在 utf8 的環境下,那麼需要修改這個檔案
core]# vi database_api.php
在第 45 行加入 @mysql_query(‘SET NAMES UTF8′);

2. 複製與編輯組態檔
cp config_inc.php.sample config_inc.php
編輯組態檔,主要有兩個部分,一個是 mysql 的設定,另一部份是 email 的設定,在原先組態檔的參數裡頭,漏了些 email 的組態,因此要把下列這段關於 email 組態的設定加上去,系統的 email 通知功能才能夠正常。

$g_phpMailer_method = 2;
$g_smtp_host = ‘localhost’; // whatever you smtp server is
$g_smtp_username = ”;
$g_smtp_password = ”;
$g_stop_on_errors = ON;
$g_email_receive_own = on;

3. 設定預設中文utf8 語系
編輯 mantis]# vi config_defaults_inc.php
在第 327 行
$g_default_language = ‘chinese_traditional_utf8′;
這樣就預設系統的語系是中文繁體 utf8 編碼了。

以上的步驟,就是安裝基本系統的方式,然而 mantis 是有支援圖表顯示的,若要開啟圖表的功能,必須編輯設定檔 config_defaults_inc.php,開啟 jpgraph,jpgraph 是 php 的繪圖函式,mantis 預設是沒有附這個函式庫的,這時可以去 jpgraph 的官網下載。

開啟圖表的任督二脈:
1. 打開設定檔 config_defaults_inc.php,找到第 483 行,改成
$g_use_jpgraph = ON;

2. 安裝中文字型到系統,我參照很多 google 上得文章,很多一致推崇 arialuni.ttf ,它含有多國語系的字型,特別是它也是 UTF-8 的,這個字型檔如果你有安裝 Office 的話,會在系統的字型資料夾內找到。我的系統是 Linux ,因此把它 copy 出來放在這個目錄內 /usr/X11R6/lib/X11/fonts/truetype。

3. 編輯 jpgraph.php 告訴它位在哪個目錄內。
在第 26 行加入這個宣告
DEFINE(‘DIR_BASE’,'/www/mantis/jpgraph’);

4. 編輯 jpgraph 函式庫的設定檔,告訴它要到哪裡抓字型,以及要使用什麼字型名稱。
#vi jpg-config.inc
找到第 41 行,改成這樣
DEFINE(『TTF_DIR』,』/usr/X11R6/lib/X11/fonts/truetype/』);

再來找到第 66 行,改成這樣
DEFINE(‘CHINESE_TTF_FONT’,'arialuni.ttf’);

5. jpgraph 預設中文是取 BIG5 編碼,然而我們現在的系統可以是完全 utf8 的了,jpgraph 這部份就顯得多此一舉,因此要再把 jpgraph 轉碼的動作取消,這時候編輯 jpgraph.php。
找到 610 行,改成這樣
// return iconv(‘BIG5′,’UTF-8′,$aTxt);
return $aTxt;

6. 經過以上步驟,原以為可以成功了,但卻不然,還是亂碼,要怎麼解決咧?經過抽絲剝繭,找到了 mantis 與 jpgraph 介接的函式庫 graph_api.php,它位在 mantis 的 core 目錄內。
找到 36 行,改成這樣
‘veraserif’ => FF_VERASERIF,
‘arialuni’ => FF_BIG5);

找到第 43 行,改成這樣
#return FF_FONT1;
return FF_BIG5;

7. 這樣修改過後,原以為可以正常work 了,但是並不然,系統告知沒有 BOLD 這個粗體字型 ,這時候找到了與 BOLD 相關的檔案,jpgraph.php。
找到第 3141 行,改成這樣
FF_CHINESE => array(FS_NORMAL=>CHINESE_TTF_FONT, FS_BOLD=>’arialuni.ttf’, FS_ITALIC=>』, FS_BOLDITALIC=>』 ),

8. 如果你覺得粗體字看起來不順眼,那麼搜尋 jpgraph 目錄內有 SetFont 這個字眼的檔案, grep SetFont * ,把 BOLD 改成 NORMAL。

Comments are closed.