D3モジュールの定義
Date 2008-08-30 06:31:19 | Category: XOOPS
|
「今さら定義?」という気もするのですが、ホダ塾メンバーでさえも、D3の重要な仕様を知らなかったことに驚き、あらためて"D3"を定義したいと思います。
もともと"Duplicatable"は、X2の制限をいかにして回避するか、ということを考えて積み上げられてきたテクニックの集大成です。
つまり、「X2で動くこと」というのがすべての"Duplicatable"の大前提となります。それはD1・D2・D3に共通します。
だから、「XCL専用」のモジュールは、複製可能でXOOPS_TRUST_PATHを使おうとも、それはD3ではないのです。
もちろん、「X2でも動作確認しなさい」などと偉そうに言うつもりはありません。ただ、D3の構造を素直に利用すれば、X2でも自動的に動くはずなのです。(この部分には多少誇張が含まれてますが)
D3の構造を意図的に外して、XCL専用とするのも当然自由ですが、それがD3でないのは自明です。
D3の構造で作ったけど、できあがったものはX2互換がなかった、なんて可能性も当然考えられます。そしてX2での動作確認を必要条件にするつもりもありません。でも、そういうケースならX2互換にするのは簡単でしょう。
D3モジュールは、世界中のX2アーキテクチャーで動きます。ImpressCMSでも、JP版X2でも、もちろん本家版XOOPSでも(一部要修正)。だからこそ、XCL専用モジュールには"Duplicatable V3"という名前を冠して欲しくないのです。それはXCL以外の海外ユーザの誤解を招くからです。
前置きが長くなりましたが、D3モジュールの定義を書きます。
*必要条件(こうじゃなければD3モジュールとは呼べないもの) (1) 原則的にX2互換であること (2) dirnameが[0-9a-zA-Z_-]のキャラクター組み合わせで自由に決められること (3) ほとんどのロジックがXOOPS_TRUST_PATHの内側にあること (4) ROOT/modules/下にあるディレクトリをコピーするだけで複数動作すること(そこにソースコード書き換えは一切発生しないこと) (5) XOOPS_TRUST_PATHの内側(ロジックの記述されたファイル)は複製する必要がないこと
*推奨条件(そうじゃなくても良いが、できれば対応して欲しいもの) - ROOT/modules/(dirname)/mytrustdirname.php ファイルを用意すること - 利用する各テーブルは (prefix)_(dirname)_(table) という名前でCREATE TABLEされること - テンプレートは (dirname)_(tplfile) という形でDBに取り込まれること - blocks/(tplfile).html という階層を持ったテンプレートをブロックに利用しないこと(=ブロック用のテンプレートも他のmoduleテンプレートと同様に扱うこと) - 特に理由がなければ、ブロックも複製可能とすること(can_cloneのセット) - D3言語マネージャを利用すること - コメントにはd3コメント統合が利用できること
「推奨条件」はまだ増えるかもしれませんが、「必要条件」は最初の5つだけです。
なお、D3モジュールの構造については、Gnaviのkentaroさんが判りやすいドキュメントを作成してくれています。まだ途中ではありますが、非常に良くできたテキストで、これからD3モジュールを作ろうという人にも、すでに作ったことのある人にも役立つと思います。 http://xoops.iko-ze.net/modules/pukiwiki/
|
|