12: 2007-05-15 (火) 15:39:31 nao-pon |
13: 2007-12-24 (月) 14:06:36 nao-pon |
| *** プラグイン [#u32a1c57] | | *** プラグイン [#u32a1c57] |
| xpWiki のプラグインは、クラスオブジェクトになっています。XOOPS_ROOT_PATH/modules/xpwiki/private/plugin に派生クラスを置くことで、各プラグインを上書きすることができます。 | | xpWiki のプラグインは、クラスオブジェクトになっています。XOOPS_ROOT_PATH/modules/xpwiki/private/plugin に派生クラスを置くことで、各プラグインを上書きすることができます。 |
| + | |
| + | 派生クラス名は、元のクラス名にインストールディレクトリ名を加えた名称にします。 |
| + | |
| + | 例えば、amazon プラグインの場合、元のクラス名が xpwiki_plugin_amazon なので、モジュールインストールディレクトリが 'xpwiki' の場合、xpwiki_&font(Red,b){xpwiki};_plugin_amazon になり、モジュールインストールディレクトリが 'mywiki' の場合、xpwiki_&font(Red,b){mywiki};_plugin_amazon となります。 |
| | | |
| 派生プラグインは、自分で書いてもよいですが、既存の xpWiki 用プラグインを変換するツールを用意してあります。 | | 派生プラグインは、自分で書いてもよいですが、既存の xpWiki 用プラグインを変換するツールを用意してあります。 |
| 各プラグイン内の設定は plugin_NAME_init() 内に記述されていますので、その部分のみ書いておくことで、プラグインのバージョンアップ時にも柔軟に対応できます。 | | 各プラグイン内の設定は plugin_NAME_init() 内に記述されていますので、その部分のみ書いておくことで、プラグインのバージョンアップ時にも柔軟に対応できます。 |
| | | |
- | 例えば、amazon プラグインの場合次のようになります。 | + | 例えば、モジュールディレクトリ名が xpwiki の場合の amazon プラグインで associate ID のみを 'hogehoge-22' に変更したい場合は、次のようになります。 |
| | | |
| + | - XOOPS_ROOT_PATH/modules/xpwiki/private/plugin/amazon.inc.php |
| #code(php){{ | | #code(php){{ |
| <?php | | <?php |
- | class xpwiki_user_plugin_amazon extends xpwiki_plugin_amazon { | + | class xpwiki_xpwiki_plugin_amazon extends xpwiki_plugin_amazon { |
- | | + | |
- | ///////////////////////////////////////////////// | + | |
| | | |
| function plugin_amazon_init() | | function plugin_amazon_init() |
| { | | { |
| | | |
- | ///////////////////////////////////////////////// | + | parent::plugin_amazon_init(); |
- | // Settings | + | |
| | | |
- | // Amazon associate ID | + | // Amazon associate ID |
- | //define('PLUGIN_AMAZON_AID',''); // None | + | $this->cont['PLUGIN_AMAZON_AID'] = 'hogehoge-22'; |
- | $this->cont['PLUGIN_AMAZON_AID'] = 'hypweb-22'; | + | |
| | | |
- | // Expire caches per ? days | |
- | $this->cont['PLUGIN_AMAZON_EXPIRE_IMAGECACHE'] = 1; | |
- | $this->cont['PLUGIN_AMAZON_EXPIRE_TITLECACHE'] = 356; | |
- | | |
- | // Alternative image for 'Image not found' | |
- | $this->cont['PLUGIN_AMAZON_NO_IMAGE'] = $this->cont['IMAGE_DIR'] . 'noimage.png'; | |
- | | |
- | // URI prefixes | |
- | switch($this->cont['LANG']){ | |
- | case 'ja': | |
- | // Amazon shop | |
- | $this->cont['PLUGIN_AMAZON_SHOP_URI'] = 'http://www.amazon.co.jp/exec/obidos/ASIN/'; | |
- | | |
- | // Amazon information inquiry (dev-t = default value in the manual) | |
- | $this->cont['PLUGIN_AMAZON_XML'] = 'http://xml.amazon.co.jp/onca/xml3?t=webservices-20&' . | |
- | 'dev-t=GTYDRES564THU&type=lite&page=1&f=xml&locale=jp&AsinSearch='; | |
- | break; | |
- | default: | |
- | // Amazon shop | |
- | $this->cont['PLUGIN_AMAZON_SHOP_URI'] = 'http://www.amazon.com/exec/obidos/ASIN/'; | |
- | | |
- | // Amazon information inquiry (dev-t = default value in the manual) | |
- | $this->cont['PLUGIN_AMAZON_XML'] = 'http://xml.amazon.com/onca/xml3?t=webservices-20&' . | |
- | 'dev-t=GTYDRES564THU&type=lite&page=1&f=xml&locale=us&AsinSearch='; | |
- | break; | |
- | } | |
- | | |
- | // global $amazon_aid, $amazon_body; | |
- | | |
- | if ($this->cont['PLUGIN_AMAZON_AID'] == '') { | |
- | $this->root->amazon_aid = ''; | |
- | } else { | |
- | $this->root->amazon_aid = $this->cont['PLUGIN_AMAZON_AID'] . '/'; | |
- | } | |
- | $this->root->amazon_body = <<<EOD | |
- | -作者: [[ここ編集のこと]] | |
- | -評者: お名前 | |
- | -日付: &date; | |
- | **お薦め対象 | |
- | [[ここ編集のこと]] | |
- | | |
- | #amazon(,clear) | |
- | **感想 | |
- | [[ここ編集のこと]] | |
- | | |
- | // まず、このレビューを止める場合、全文を削除し、ページの[更新ボタン]を押してください!(PukiWiki にはもう登録されています) | |
- | // 続けるなら、上の、[[ここ編集のこと]]部分を括弧を含めて削除し、書き直してください。 | |
- | // お名前、部分はご自分の名前に変更してください。私だと、閑舎、です。 | |
- | // **お薦め対象、より上は、新しい行を追加しないでください。目次作成に使用するので。 | |
- | // //で始まるコメント行は、最終的に全部カットしてください。目次が正常に作成できない可能性があります。 | |
- | #comment | |
- | EOD; | |
| } | | } |
| } | | } |
| | | |
| 上手く変換できなかった場合は、サーバーにアップロードした時点や、プラグインを呼び出した時にPHPの実行が止まって画面が真っ白になることがあります。もし、そのような状態になった時には、サーバーから削除して変換されたプラグインの内容のデバグを行ってください。 | | 上手く変換できなかった場合は、サーバーにアップロードした時点や、プラグインを呼び出した時にPHPの実行が止まって画面が真っ白になることがあります。もし、そのような状態になった時には、サーバーから削除して変換されたプラグインの内容のデバグを行ってください。 |
- | | |
- | */ [#m3b27410] | |