Ethnaでcheckboxを扱う
Ethnaにはフォームへルパというとても便利な機能がある
ActionFormで以下のように定義しておくと
... 'hoge' => array( 'type' => VAR_TYPE_STRING, 'form_type' => FORM_TYPE_TEXT, 'name' => 'ほげ', ), ...
テンプレート側で以下のようにすると
{form_inpt name="hoge"}
簡単にタグが挿入される
素晴らしい
フォームヘルパの詳細については以下を参照してください。
http://ethna.jp/ethna-document-dev_guide-view-form_helper.html
checkboxを複数表示するには?
checkboxの扱いにちょっと迷ったので記録しておきます。(自分用)
checkboxを複数表示したい場合は以下のようにまずActionFormに定義する
'hoge' => array( 'type' => array(VAR_TYPE_INT), 'form_type' => FORM_TYPE_CHECKBOX, 'name' => 'ほげ', 'option' => array( 'A', 'B', 'C' ), ),
ポイントは、typeを配列で宣言。
こうするとINT型のデータを配列で受け取れます。
そして、optionを定義します。
これも配列で。
そしてテンプレート側ではいつもどおり
{form_input name="hoge"}
とすればよいのですがこれだけだと、checkboxがスペースで区切られて表示されるだけなのでレイアウトに困ります。
セパレータを指定できないかとソースを読んでみたら、指定できそうです。
以下のような感じでできました。(この場合は
で区切ります。)
{form_input name="youken" separator="<br>"}
{form_input}にはseparatorというオプションがあるということです。
ドキュメントには書いてなかったけど
ソースが読みやすいので助かります。
ソースを読むと勉強にもなります。
藤本さんを筆頭にEthnaの開発者のみなさまに感謝です。