データベース定義

フォームジェネレーターのテキストフィールドやテキストエリアは、いずれもContaoのtl_form_fieldテーブルに登録されているレコードです。それぞれに文字変換を行う方法を記録する必要があるため、テーブルに列を追加する必要があります。

Contaoではデータベースの定義を書く必要はありますが、直接データベースを変更するといった必要はありません。追加する必要があるレコードだけから構成されたテーブルを定義するようなSQL文を書きます。

データベースの定義は機能拡張のディレクトリ以下にconfig/database.sqlとして置きます。

CREATE TABLE `tl_form_field` (
  `conversion` char(1) NOT NULL default '',
  `normalize` varchar(4) NOT NULL default '',
  `convert_alpha` varchar(12) NOT NULL default '',
  `convert_digit` varchar(12) NOT NULL default '',
  `convert_alnum` varchar(12) NOT NULL default '',
  `convert_space` varchar(12) NOT NULL default '',
  `hKatakana` varchar(12) NOT NULL default '',
  `hDakuten` char(1) NOT NULL default '',
  `fKatakana` varchar(12) NOT NULL default '',
  `fHiragana` varchar(12) NOT NULL default '',
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

実際に、このSQL文が実行されるわけではありません。

機能拡張のインストールやアンインストールのときに、機能拡張マネージャーが既存のテーブルの内容と比較して、テーブルのレコードの作成や削除を行えるようになっています。また、テーブル名が存在しない場合は、テーブル自体の作成や削除も可能です。