EthnaではデフォルトでActionFormで個々のフォームの選択肢のリストをoptionで配列指定できる機能があります。
例えば、hoge, moge, fugaの3つの選択肢があるセレクトボックスを作るときは、ActionFormで以下のように使います。
'name' => array(
'type' => VAR_TYPE_INT,
'form_type' => FORM_TYPE_SELECT,
'option' => array(0 => 'hoge', 1 => 'moge', 2 => 'fuga'),
),
ただ、別画面で同じ選択肢のリストを毎回optionで指定するのは割と大変です。
なので、この選択肢のリストを設定ファイル(appid-ini.php)や関数で一度定義して、流用しようという作戦です。
応用すると、関数で定義する場合はDBからの取得も可能になります。
では、早速改造のやり方を説明します。大まかな手順としては以下のとおりとなります。
- AppID_ActionForm::setOptionを作成する
- AppID_ActionForm::_setFormDefをオーバーライドして、上記setOptionを呼ぶ
方法は他にもあると思いますが、比較的使いやすく便利なので、お勧めです。