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
[ リロード ]   [ ソース ]  [ トップ | 一覧 | 単語検索 | 最新 | バックアップ | ヘルプ ]

#navi(WebSylpheed)
**第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とは呼べなくなっていると思う。

****参考文献
-[[Keiko269-XOOPSちょっとカスタマイズ編(1) : 簡易モジュール:http://keiko269.uhyoten.com/modules/wfsection/article.php?articleid=2]]
----80%
//#comment(btn:ご自由に!)
#navi(WebSylpheed)