include_module.inc.php†
サマリ | Smartyによるモジュール開発用プラグイン試行版 |
リビジョン | 1.22 |
対応バージョン | 1.4.7 |
投稿者 | kahata |
投稿日 | |
- プラグイン include_module
- PHPのSmartyのテンプレート*1を機能を用いた、モジュールをインクルードする。
このプラグインはpukiwukiで、PHPテンプレートエンジン、Smartyによるモジュールの開発を期待してSmartyの使い方を例示したプラグインです。*2
願わくばwiki本体にSmartyが組み込まれ、xoopsのようなモジュール開発の環境が整うことを期待します。
Smartyに関する知識があり、且つプラグインのPHPソースコードの妥当性を評価できる方以外は本プラグインを使用しないで下さい。(知識不十分なまま誤用や悪用がないよう公共性に配慮していますので、不親切な説明ですがご了解下さい)
Validation Check, セキュリティー面のチェックは各自で行うこと。
- ライセンス
- 基本的にはGNU General Public License(GPL)ですが、自由に配布・利用・改造してかまいません。
本pluginを利用して発生する危険、損害については当方は一切の責任を負いません。
全て自己リスクでお使い下さい。
- 書式
#include_module([サブディレクトリ名/]モジュール名[,引数2,引数3,.....引数n])[{{
モジュールに引き渡すパラメータ(データ類など)の記述
........
}}]
使用例†
- wikiページ(プラグイン埋め込みページ)の記述
#include_module(template, jusho_pkwk,wiki){{
name = ○田△夫
zip = xxx-yyyy
address = 東京都×××××××××
phone = 01-1234-4567
}}
ここに
第1引数 template: ver1.00のテンプレート機能を実現するモジュール名
第2引数 jusho_pkwk: Smartyテンプレートエンジンのテンプレート(ファイル)名
第3引数 wiki: wiki書式を可能にするためのオプション
- Smarty テンプレートファイル jusho_pkwk.tpl
{* Smarty 住所録サンプル pukiwiki *}
CENTER:住所録
|CENTER:名前|CENTER:郵便番号|CENTER:住所|CENTER:電話番号|h
|{$data.name}|{$data.zip}|{$data.address}|{$data.phone}|
出力結果†
住所録
名前 | 郵便番号 | 住所 | 電話番号 |
○田△夫 | xxx-yyyy | 東京都××××××××× | 01-1234-4567 |
ダウンロード†
悪意あるURLの変更がありましたので、このページでの提供を取止めます。
下記の実稼動サンプルのページからダウンロードして下さい。
インストールの方法†
更新履歴†
日時 | リビジョン | 内容 |
2007-06-24 | 1.00 | 初版公開 Smartyのテンプレート機能のみ実現 |
2007-06-27 | 1.10 | 広く一般的に、PHPコードで記述されたモジュールをインクルードするよう強化 |
2007-06-28 | 1.20 | modulesに置かれたモジュールでget,postの使用を可能にしました |
2007-07-01 | 1.21 | post先を元のmodules関数にして、分岐処理を行うよう変更した |
2007-07-16 | 1.22 | modulesのサブディレクトリに置かれたmoduleの使用を可能にしました |
実稼動サンプル†
公開サーバ上で実際に稼動しているサンプルを以下のサイトに置きましたのでご覧下さい。
- モジュール template事例(template)実稼動サンプル
- モジュール comment事例(comment)実稼動サンプル
- include_module/活用事例1(flower)実稼動サンプル
- include_module/活用事例2(column)実稼動サンプル
- 活用事例3(admin)実稼動サンプル 管理者認証を行う。
- 活用事例4(form)実稼動サンプル 投稿用フォームを表示する。
- 活用事例5(bbs)実稼動サンプル 画像掲示板
コメント†
- 稼働サンプルはありませんか? --
- 以下は試験的にプラグイン#commentをモジュールに移設した例です。 -- kahata
comment_modules.zip プラグイン #commentをモジュールに移設したテスト例
上記 include_moduleのパッケージに同梱しています。
- 「なあんだ、これじゃプラグインと同じじゃないか」とのご意見もあるかもしれませんが、現在Pukiwikiで利用できるデザイン/プログラミングのユーザインターフェイスはスキンとプラグインですので、モジュール開発の一里塚としてプラグインをフックに使っているとご理解下さい。
将来、モジュールがユーザインターフェイスの強力なツールとして独立に機能するようpukiwiki本体側の環境が整うことを期待しております。(例えば各ページ毎に独自のstyle.cssが使えるようになるだけでも大きい進歩では?)
開発チームの皆様宜しくお願いします。 -- kahata
- もし、興味あるモジュール(私の言う)を開発されましたら、このページのサブページ(自作プラグイン/include_module.inc.php/活用事例1 など)で活用事例としてご紹介頂けるとありがたいです。 -- kahata
- 質問箱4/129にある、ぃぉぃぉさんのアドバイスに従って、ブラウザの更新ボタンを押しても多重投稿されないように修正したサンプルのコメントモジュールを同梱しました。試用には最新版をダウンロードして下さい。(#include_module本体の変更はありません) -- kahata
- パッケージのダウンロード先が他のurlに置き換わっていましたので訂正しました。このようなことが再々起こればこのページでの提供を中止します。 -- kahata
- 活用例として掲示板などに使われる投稿用フォームの例をver1.22パッケージに同梱しました。 -- kahata
- モジュールのプログラミングに関しては、モジュール関数名をmodule_モジュール名(){}とすること以外特に制約はないのですが、コードの可読性を高め開発を容易にするため、モジュールに共通する処理を出来るだけmodule_functionクラスに移動して各モジュール固有の処理と分離しました。
このようにコードを整理し補足説明を加えたform/formのサンプルを最新のinclude_module_1.22.zipに同梱しましたのでコードを読む方はこちらを参照して下さい。なおform/formモジュールの機能は従来と変わりありません。 -- kahata
- $baseがwikiシステムのグローバル変数であるための変数名変更、若干のbug fixを行っています。最新版をダウンロードして下さい。 -- kahata
- form/formモジュールにおいて、モジュール変数をmodule_functionクラスのメンバー変数に組み込み機能を拡充しました。 (最新版に同梱)。なおform/formモジュールの機能、#include_moduleは従来と変わりありません。以下の特徴があります。 -- kahata
- 関数変数名の衝突を防止できる。
- module_functionクラスのサブクラスを作成することによって各モジュール毎の設定が可能になる。