活用例2†
以下は自作プラグイン/include_module.inc.phpを使って管理者からの情報を掲載するコラムをモジュール化した例です。
使用法†
#include_module(column/column)
- 管理者専用のモジュールであるため編集機能を設けていません。内容の追加/変更/削除はcolomndata/column.txtを編集して下さい。
(勿論、複数行引数でデータを渡すことやwikiページをデータに取り込むことはコードの変更で可能です。)
- 標題、内容にhtmlのタグが使用できます。htmlエディタなどで作成した後、column.txtに倣い、改行をとって1コラム1行のデータにして下さい。
#include_moduleパッケージに同梱しています。
インストールの方法†
- 上記ファイルをダウンロードし解凍して出来たinclude_module.inc.phpをpluginのディレトリーに置いて下さい。
- pukiwiki.ini.phpのPKWKEXP_DISABLE_MULTILINE_PLUGIN_HACKを0に設定して下さい。
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
- 上記を出力するためのファイル類をを同梱しています。
解凍してできたmodulesのディレクトリを、それぞれのPHPとSmartyのインストール環境に合わせて、適切な場所においてください。
(defaultはwiki(DATA_HOME)直下のサブディレクトリ wiki/modules/)
- Smartyが使える環境にない場合はSmarty マニュアルに従ってインストールして下さい。
- Smartyのインストールは非常に簡単で具体的には以下のようにします。、
- SmartyパッケージをSmartyのダウンロードサイトから入手し、解凍してできたディレクトリにあるlibディレクトリを、Smartyに名前を変更して(libディレクトリ)全体をwiki(DATA_HOME)の直下に置きます。(その他のディレクトリは必要ありません、約315KB)
- pukiwiki.ini.phpに以下のコードを追加します。
//unix スタイルの場合 (大文字の 'S' に注意)
define('SMARTY_DIR', 'サーバー上の絶対パス/wiki/Smarty/');
(例) サーバーのルートディレクトリ直下にwikiがある場合
define('SMARTY_DIR', '/wiki/Smarty/');
実稼動サンプル†
- 公開サーバ上で実際に稼動しているサンプルを以下のサイトに置きましたのでご覧下さい。
include_module/活用事例2(column)実稼動サンプル
- #include_module及びその活用事例サンプル類はlocalhost上で開発しテストした上で公開してきましたが、実際に公開サーバにアップしてみるとサーバー環境/wiki設置環境/char-setなどによって、コードの変更が必要な所が2,3箇所出てきました。これらの変更はお使いの環境に依存しますので、必要に応じて各自で設定して下さい。*1
拡張性†
- templatesデイレクトリにあるcolumn.tplで表示スタイルを自由に変更できます。
- 上記のように複数行引数、wikiページ取り込みで編集可能にできますが、良し悪しと思います。
- 投稿/編集フォーム、複数行引数、オプション、ページの取り込みなどで一般(不特定)ユーザとのインターフェイスを追加できますが、wikiは誰でも書き込み(アップ)できる利便性/柔軟性の反面、スパムや悪意ある書き込みの標的になるので議論のあるところです。
コメントをどうぞ