データベース定義
フォームジェネレーターのテキストフィールドやテキストエリアは、いずれも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文が実行されるわけではありません。
機能拡張のインストールやアンインストールのときに、機能拡張マネージャーが既存のテーブルの内容と比較して、テーブルのレコードの作成や削除を行えるようになっています。また、テーブル名が存在しない場合は、テーブル自体の作成や削除も可能です。