以前「PHPベースのグループウエア」で La!cooda WIZ を紹介しましたが、今回は Pukiwiki の tasks.inc.php を使ってみます。
動作環境
このタスク管理プラグインを試した環境は下記の通りです。
PHP5.2.0
Pukiwiki1.4.7_notb
tasks.inc.php はダウンロードして、Pukiwiki の plugin ディレクトリに入れればすぐに使えます。
ガントチャートを表示するには JpGraph の機能を使うので、PHP の GD ライブラリを使えるようにしておく必要があります。
Windows の場合は dll を読み込むようにしておけばいいですが、Linux の場合は PHP を GD ライブラリを使用するようにしてビルドする必要があります。
現状、PHP で GD ライブラリを使えるか確認するには、phpinfo 関数を使うのが簡単です。
1 2 3 | <?php phpinfo(); ?> |
グラフにJpGraphを使用する
GD ライブラリが使えることを確認したら、JpGraph をダウンロードします。
現在はアシアルさんの著作物なのかな?
PHP5.2.0 の場合は、JpGraph2.x 系をダウンロードします。
2007年11月時点の最新は JpGraph2.2 です。
ダウンロードしたら解凍して、src フォルダの中身を適当なディレクトリに配備します。
今回は、PHP のinclude_path(インクルードパス)が通ってると仮定して、/usr/share/php5/jpgraph にモジュールをコピーします。
次に、jpgraph/Examples ディレクトリにあるサンプルをドキュメントルート以下に置いて、ブラウザで確認します。
例えば、jpgraph/Examples/accbarex1.php をドキュメントルート直下に置いた場合は下記にアクセスします。
1 | []http://localhost/accbarex1.php[] |
ブラウザ上にグラフが表示されれば成功です。
JpGraphの設定と日本語化
まず、グラフに日本語表示するためにフォントをダウンロードします。
フォントのダウンロード先は以下のサイトです。
ダウンロードした日本語対応フォントを下記のディレクトリに置く前提で話を進めます。
対象のファイルはダウンロードした圧縮ファイルの font フォルダの中になります。
/usr/X11R6/lib/X11/fonts/truetype
Jpgraphの設定ファイルを編集します。
1 2 3 4 5 6 7 8 | $ vi /usr/share/php5/jpgraph/jpg-config.inc.php # 41行目のコメントを外す DEFINE("MBTTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/"); # フォントの確認(109行目から) DEFINE('MINCHO_TTF_FONT','ipam.ttf'); DEFINE('PMINCHO_TTF_FONT','ipamp.ttf'); DEFINE('GOTHIC_TTF_FONT','ipag.ttf'); DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf'); |
これで、JpGraph2.2 の設定は完了です。
JpGraph1.x 系は違うと思うので注意して下さい。
Pukiwikiのプラグイン設定
次に Pukiwiki のプラグイン設定です。
1 2 3 4 5 6 7 8 9 10 11 | $ vi /srv/www/htdocs/pukiwiki/plugin/tasks.inc.php # フォントを編集 # $graph->title->SetFont(FF_FONT1,FS_BOLD,10); $graph->title->SetFont(FF_GOTHIC,FS_NORMAL,10); # 文字数制御をなくす(文字化けの原因になるので) # マルチバイトを想定してないのかな? // $task_name15 = sprintf("% -15s",substr($task_name[$i],0,15)); # こっちで対応できそう(バイト数は20でとりあえず) $task_name15 = mb_strimwidth($task_name[$i], 0, 20, ""); # フォントを編集 $activity{$i}->title->SetFont(FF_GOTHIC,FS_NORMAL,8); |
これで、Pukiwiki のガントチャートで日本語が使えますので、tasks.inc.php の設定を変更します。
1 2 3 4 5 6 7 | $ vi tasks.inc.php // ガントチャートを使用する DEFINE("USE_JPGRAPH","true"); // デフォルトをガント表示にする DEFINE("DEFAULT_JPGRAPH","true"); // JpGraphのパスを指定する DEFINE("JPGRAPH_PATH", "/usr/share/php5/jpgraph"); |
これで、ほぼ納得のいくものが使えると思います。
後は日付フォーマットが「日/月」になっているので、JpGraph のソースを調整します。
1 2 3 4 5 | # 週の表示を「日/月」から「月/日」に変更する $ vi /usr/share/php5/jpgraph/jpgraph_gantt.php # 2617行目のフォーマットを変更する //$txt = date("j/n",$week); $txt = date("n/j",$week); |