MENU

ブログ

baserCMSのプラグイン開発でデータベースを使用する場合にやっておくこと

baserCMSのプラグインはできたけど、配布する時のデータベースはどうやって準備したらいいんだろう?って時のための記事です。今回は、myplugin というプラグインを作成した場合、という設定で進めていきます。

1. インストール時の実行ファイル init.php を作成する

用意したスキーマを実行させるためのファイル「インストールスクリプト」を作成します。

myplugin/config/init.php

ディレクトリ構造インストールスクリプト

この init.php ファイルの中に、下記の要領で記述します。

$this->Plugin->initDb('{プラグイン名}');

プラグイン名は、作成しているプラグイン名を入れて下さいね。
今回の場合 myplugin になります。

2. スキーマファイルを用意する

スキーマファイルを作るのってなんだかめんどそう・・・。テーブルなら、プラグイン作成した時に、phpMyAdminで作成済みなのに!って時のために、baserCMSでは、スキーマファイル自動生成機能がついてます。

http://{baserCMS設置URL}/admin/tools/write_schema

上記のURLを入力すると、baserCMSで使用されているデータベースのテーブル一覧が表示されます。上が「コアテーブル」下が「プラグインテーブル」になっています。

スキーマ生成ページ

ちなみに、プラグインテーブルの命名ルールは、「 bc_pg_プラグイン名_ 」で始まること、となっているので、このルールに沿って作成くださいね。作成済みのテーブルは、この一覧に表示されますので、選択して生成ボタンをクリックするだけで、あっという間にスキーマファイルのできあがり!です。schema.zip がダウンロードできるので、解凍してください。

{プレフィックスなしのテーブル名}.php ※bc_pg_なしのテーブル名.php のことです。

というファイルが出来ていれば、OKです。このファイルは、下記ディレクトリに保存します。

myplugin/config/sql/

3. csvファイルを用意する

プラグインをインストールした時に、データベースに初期値を持たせたい時のためのファイルです。マスターテーブルを使うプラグインを作る時などに使用できますね。

csvファイルの作り方

  • 文字コードは、Shift-JIS
  • 各フィールドをカンマで区切る
  • 各フィールドをダブルコーテーション(”)で囲む
  • フィールド内のダブルコーテーションは、ダブルコーテーションでエスケープする
  • 1行目は、フィールド名の定義とする
  • ファイル名は、プラグイン名から始まる

こんな感じになります。

"id", "name","title","created","modified"
"1","test","簡単な""プラグイン""の作り方","",""

保存場所は、スキーマファイルと同じ場所です。

myplugin/config/sql/

ファイル名は、プレフィックスなしのテーブル名.csv になります。
たとえば、テーブル名が、bc_pg_myplugin_table だった場合、

myplugin_table.csv

となります。

スキーマファイルとcsvファイルは用意できましたか?ディレクトリ構造のイメージです。

ディレクトリ構造

以上で、データベースの準備ができました。これでプラグインをインストールする時に、baserCMSのデータベース内にテーブルが構築されます。

2012/07/10        admin   |    タグ:baserCMS , プラグイン