User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha
[ リロード ]   [ ソース ]  [ トップ | 一覧 | 単語検索 | 最新 | バックアップ | ヘルプ ]


第1ステップ・単純な組込

まずは、既存PHPプログラムのXOOPSモジュール化の定石である、単純なモジュール化に着手。

作業記録

1.初期配置

WebSylpheedのディレクトリーを、XOOPSのmodulesディレクトリ下にディレクトリ毎コピーを行う。

2.XOOPSのヘッダーフッターの組み込み。

htmlページをを生成するPHPプログラムソースを以下の手順で修正する。
1)XOOPSヘッダの組み込み。
対象のPHPファイルを開いて、ページに<html>タグが出力されるロジックよりも前に、

include("../../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");
OpenTable();

を挿入する。
また、</html>タグが出力されるロジックよりも後に、

CloseTable();
include(XOOPS_ROOT_PATH."/footer.php");

を挿入する。
2)html出力部分の修正。
通常、PHPでhtmlを出力するにあたっては、最低限

<html>
<head><title></title></head>
<body>
   表示されるコンテンツ本体
</body></html>

という構造で出力を行うが、XOOPSのモジュールは、上記のコンテンツ本体のみを生成して、その他の
出力はXOOPS本体に任せる事となるため。<html></html><body></body>などを出力している部分を削除する。

3. xoops_vesrion.phpの作成

XOOPSモジュールの情報を記述するファイル、xoops_vesrion.phpを作成する。
今回は最低限のモジュール化なので、以下のようになる。

<?php
$modversion['name'] = 'WebSylpheed';
$modversion['version'] = "0.1";
$modversion['description'] = 'WebSylpheedモジュール';
$modversion['official'] = "no";
$modversion['dirname'] = "websylpheed";
// Admin things
$modversion['hasAdmin'] = 0;
$modversion['adminmenu'] = "";

// Menu
$modversion['hasMain'] = 1;
?>

4.インストール&テスト

ここまでで、最低限の作業が完了したので、XOOPSの管理者メニューでモジュールのインストールを行う。
インストールが終わると、メインメニューにWebSylpheedというのが追加されているはずなので
稼働テストを行う。

5.微調整

おそらく、いろいろな制約から、そのままではきちんと稼働しない場合があるので、症状にしたがって、
修正を行う。
今回のWebSylpheedでは、以下の修正を行う事によって、とりあえず一通りの動作がおこなえる様になった。

ソースの文字コード変換

WebSylpheedは、i-modeでも表示が可能なようにソースもShiftJISでエンコードされていたため、
EUCにコード変換を行った。
Register Global Off対応

WebSylpheedは、元々はPHP3の時代に開発された事もあって、Register Global Off対応が
されていなかった。
よって、そのままでは画面間のパラメータの受け渡しがうまくいかなかったので、HTTP_GET_VARSや
HTTP_POST_VARSなどを使って、パラメータを取得するロジックを追加した。
WebSylpheedの場合には、session.inc.php(元々はsession.lib)の中の先頭部分に、以下のロジックを追加
foreach($HTTP_POST_VARS as $key => $value) {
    eval("\$"."$key = \"$value\";");
}
foreach($HTTP_GET_VARS as $key => $value) {
    eval("\$"."$key = \"$value\";");
}

6.最終確認

上記修正後、再度稼働テストを行う。


以上で、とりあえずXOOPSの中でWebSylpheedがモジュールとして動くようになった。
今後のToDoとしては、

  • メールアカウント情報のDBへの投入と管理
  • Adminメニューの追加
  • アドレス帳の他のモジュールとの共用化
  • 新着メールブロック等の追加
  • IMAPフォルダーのキャッシュ保存
  • 画面推移のシンプル化(携帯用の為画面展開階層が深い)
  • 出力HTMLのCSS対応とSmarty Template化
  • 添付ファイル、HTMLメール対応
    などを予定している。
    (何時になったら出来る事やら・・・・・)
    これらが、完了する頃には元のプログラムで生きているのはIMAP関連のロジックだけになっていると思うので
    もはや、WebSylpheedとは呼べなくなっていると思う。

参考文献