プラグイン開発について
BaserCMS は、独自のプラグイン管理機能を持ち、プラグインのインストール、有効化、無効化の仕組み、また、本体での処理をフックするプラグインフック機能を提供しています。
基本的には、CakePHP のプラグイン開発に準じますが、BaserCMS の管理機能に認識させる為、BaserCMS独自のルールを組み込む必要があります。
ここでは、BaserCMS の管理できるようにするためのプラグイン開発ルールをご説明します。
CakePHP のプラグイン開発に準じてプラグインを開発する
前述したとおり、BaserCMS は基本的に CakePHP の開発手法に準じて開発されていますので、プラグインについても CakePHP の開発に準ずる必要があります。 CakePHP のプラグイン開発については次のリンク先を参考にしてください。
コントローラーは PluginsController を継承させる
コントローラーでは、BaserCMS にパッケージされている PluginsController を継承させます。
class DemoController extends PluginsController{
var $name = 'Demo'; // nameプロパティをちゃんと定義しておく【重要】
}
PluginsController は 事前に読み込んでおく必要あります。
App::import('Controller', 'Plugins');モデルでは plugin プロパティを定義する
プラグインで利用するモデルでは、プラグイン名を設定する plugin プロパティを設定します。
class Demo extends AppModel {
var $plugin = 'Demo';
}
インストール用の SQL ファイル、または CSV ファイルを準備する
インストール時に実行する SQL ファイル、CSV ファイル は以下のパスに設置します。
● SQL ファイル
/app/plugins/{プラグイン名}/config/sql/{プラグイン名}_{対応するデータベース名}.sql
※ プラグイン名はアンダースコア区切りで指定します。
※ データベース名は、mysql / postgresql / sqlite のどれかを指定します。
3つのデータベースに対応する場合は3つのファイルを設置します。
● CSV ファイル
/app/plugins/{プラグイン名}/config/sql/{プラグイン名}/{テーブル名}.csv
インストール用設定ファイルを準備する
インストール画面で利用する設定値を記述する設定ファイルは、config.php というファイル名で以下のパスに設置します。
/app/plugins/{プラグイン名}/config/config.php
設定ファイルには下記の設置値を記述します。
$adminLink = '{管理画面用初期ページへのリンク}';
$title = '{プラグイン名(日本語可)}';
$installMessage = '{インストール画面に表示するメッセージ}';
インストールスクリプトを準備する
インストールスクリプトは install.php というファイル名で以下のパスに設置します。
このスクリプトは、PluginsController の admin_add メソッドより呼び出されます。
/app/plugins/{プラグイン名}/config/install.php
インストール用の Create 文等を記述した SQLファイル、CSVファイルを登録するには、下記メソッドを呼び出します。
$this->Plugin->initDatabase('plugin','{プラグイン名}');
※ プラグイン名はアンダースコア区切りで指定します。

















