Author: | Shogo Kawahara <Twitter: @ooharabucyou> |
---|---|
Date: | 2010-12-03 |
いよいよ、実際にプラグインの骨格を作ります。
OpenPNE3には、プラグインスケルトン(骨格)を作成する機能が備わっています。
以下のコマンドで、スケルトンの作成ができます。
$ cd $openpne_dir
$ php symfony opGenerate:plugin プラグイン名
OpenPNE3のプラグイン名には規則があり、opXXXXPlugin (XXXXは任意の文字列)である必要があります。他のプラグインと同じ名前を付けることはできません。
Note
通常のプラグイン以外に、特殊な役割を持つプラグインが2つ存在します。
スキンプラグイン は、opSkinXXXXPlugin (XXXXは任意の文字列) という名前です。デザインやレイアウトを変更する用途に利用します。複数のスキンプラグインから1つのみ選ぶことができます。デフォルトでは、opSkinBasicPlugin と opSkinClassicPlugin がインストールされ、 opSkinBasicPlugin が有効になっています。opSkinClassicPlugin は、OpenPNE2のデザイン
認証プラグイン は、opAuthXXXXPlugin (XXXXは任意の文字列) という名前です。ログインフォームと認証方法を提供するためのものです。
このドキュメントでは、opSamplePluginという名前のプラグインを使います。
$ php symfony opGenerate:plugin opSamplePlugin
$openpne_dir/plugins/opSamplePlugin というディレクトリが作成されます。今後、このドキュメントでは、このディレクトリを $your_plugin_dir と表記します。
OpenPNE3.6 には、5つのアプリケーションが用意されています。それぞれが設定や表示で異なる挙動をします。
まずは ユーザ側PC向けのページを作りたいので、プラグインに pc_frontend のディレクトリを作成します。
これもコマンドによって簡単に行うことができます。
$ php symfony opGenerate:app プラグイン名 アプリケーション名
opSamplePlugin で pc_frontend のディレクトリを作りたいので以下のようになるでしょう。
$ php symfony opGenerate:app opSamplePlugin pc_frontend
モジュールは、複数のアクション・ページをまとめるものです。以下のコマンドで作成ができます。
$ php symfony opGenerate:module プラグイン名 アプリケーション名 モジュール名
opSamplePlugin の pc_frontend で sample モジュールを作りたいので以下のようになるでしょう。
$ php symfony opGenerate:module opSamplePlugin pc_frontend sample
これまでに作られたプラグインのディレクトリを確認してみましょう。
$your_plugin_dir/
|-- apps/
| `-- pc_frontend
| `-- modules
| `-- sample
| |-- actions
| | `-- actions.class.php
| `-- templates
| `-- indexSuccess.php
|-- dependencies.yml.sample
|-- lib/
`-- test/
Note
この項は、symfony の Plugin を理解している人の為の説明です。今後に支障は出ないので、読み飛ばしても構いません。
OpenPNE3のプラグインは、symfonyのプラグインの機能を活用していますが、挙動は異なります。
symfonyプラグインでアクションやビューを実装する場合は、プラグイン直下に modules/* を設置して、 setting.yml でプラグインのモジュールを有効にする必要があります。
OpenPNE3プラグインの場合は、アプリケーションのディレクトリを作成し、その中にモジュールを持つ仕組みになっています。モジュールを有効にする時に特別な設定は不要です。
準備を終えました!明日は、ページを作ります。