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
WebSylpheed/XOOPSモジュール化への道/01 のバックアップ差分(No.12)
[ リロード ]   [ ソース ]  [ トップ | 一覧 | 単語検索 | 最新 | バックアップ | ヘルプ ]


  • 追加された行はこの色です。
  • 削除された行はこの色です。

  #freeze	uid:2	aid:0	gid:0
  // author:2
  #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)