baserCMSのプラグインはできたけど、配布する時のデータベースはどうやって準備したらいいんだろう?って時のための記事です。今回は、myplugin というプラグインを作成した場合、という設定で進めていきます。
1. インストール時の実行ファイル init.php を作成する
用意したスキーマを実行させるためのファイル「インストールスクリプト」を作成します。
myplugin/config/init.php
この init.php ファイルの中に、下記の要領で記述します。
$this->Plugin->initDb('{プラグイン名}');
プラグイン名は、作成しているプラグイン名を入れて下さいね。
今回の場合 myplugin になります。
スキーマファイルを作るのってなんだかめんどそう・・・。テーブルなら、プラグイン作成した時に、phpMyAdminで作成済みなのに!って時のために、baserCMSでは、スキーマファイル自動生成機能がついてます。
http://{baserCMS設置URL}/admin/tools/write_schema
上記のURLを入力すると、baserCMSで使用されているデータベースのテーブル一覧が表示されます。上が「コアテーブル」下が「プラグインテーブル」になっています。
ちなみに、プラグインテーブルの命名ルールは、「 bc_pg_プラグイン名_ 」で始まること、となっているので、このルールに沿って作成くださいね。作成済みのテーブルは、この一覧に表示されますので、選択して生成ボタンをクリックするだけで、あっという間にスキーマファイルのできあがり!です。schema.zip がダウンロードできるので、解凍してください。
{プレフィックスなしのテーブル名}.php ※bc_pg_なしのテーブル名.php のことです。
というファイルが出来ていれば、OKです。このファイルは、下記ディレクトリに保存します。
myplugin/config/sql/
プラグインをインストールした時に、データベースに初期値を持たせたい時のためのファイルです。マスターテーブルを使うプラグインを作る時などに使用できますね。
csvファイルの作り方
- 文字コードは、Shift-JIS
- 各フィールドをカンマで区切る
- 各フィールドをダブルコーテーション(”)で囲む
- フィールド内のダブルコーテーションは、ダブルコーテーションでエスケープする
- 1行目は、フィールド名の定義とする
- ファイル名は、プラグイン名から始まる
こんな感じになります。
"id", "name","title","created","modified" "1","test","簡単な""プラグイン""の作り方","",""
保存場所は、スキーマファイルと同じ場所です。
myplugin/config/sql/
ファイル名は、プレフィックスなしのテーブル名.csv になります。
たとえば、テーブル名が、bc_pg_myplugin_table だった場合、
myplugin_table.csv
となります。
スキーマファイルとcsvファイルは用意できましたか?ディレクトリ構造のイメージです。
以上で、データベースの準備ができました。これでプラグインをインストールする時に、baserCMSのデータベース内にテーブルが構築されます。