Category: Ethna
よくよく考えると、この解説をして無いのに 二回も話題にしている件について。
(参考: BoBlog ≫ Ethna: Ethna_ActionForm::freeze())
(参考: BoBlog ≫ Ethna: Ethna_View->helper_action_form)
ということで、謎のキーワードである {form_input}, {form_name} について、解説してみようと思う。
両者とも Ethna 2.1.0-CVSで導入された(はず) の機能で、もともとは、haltさんが開発しているEthna用ライブラリである、Hasteにあった機能です。
また、実装としてはSmartyPluginとして実装されており、テンプレート上から呼び出します。
では、簡単に機能概略を。
一例を挙げるとすると、
テンプレート上で、
うーん、慣れるまで面倒な気もするけど便利。
上と同じような ActionFormがあるとして、
テンプレート上で、
また、value="" の部分は本来 value="{$form.hoge}" の意味で、{$form.hoge}はActionFormの値ですから、ActionClass or ViewClass上で
また、maxlength属性をつけたいなぁって思ったあなた、ご安心あれ。
inputは確かに若干面倒なので、これで結構楽になるかなあと思いますよ。
次バージョンの正式リリースが待ち遠しいですね。
追記 at 2006-05-28 22:20
inputタグのname属性が mail になっているのを修正しました。
(参考: BoBlog ≫ Ethna: Ethna_ActionForm::freeze())
(参考: BoBlog ≫ Ethna: Ethna_View->helper_action_form)
ということで、謎のキーワードである {form_input}, {form_name} について、解説してみようと思う。
両者とも Ethna 2.1.0-CVSで導入された(はず) の機能で、もともとは、haltさんが開発しているEthna用ライブラリである、Hasteにあった機能です。
また、実装としてはSmartyPluginとして実装されており、テンプレート上から呼び出します。
では、簡単に機能概略を。
{form_name}
これは、フォームの項目名を出力するSmartyPluginです。一例を挙げるとすると、
class xxx_Form_Hoge extends Ethna_ActionForm {
var $form = array(
'hoge' => array(
'name' => 'ほげほげ',
'required' => true,
'filter' => 'numeric_zentohan',
'form_type' => FORM_TYPE_TEXT,
'type' => VAR_TYPE_INT,
),
);
}
こんなActionFormが、Actionにひもづいて呼ばれる or Viewのhelper_action_formにセットされているとして、テンプレート上で、
{form_name name="hoge"}
こうすることで、その部分は 「ほげほげ」に置き換わる。これで、テンプレート側の項目名とフォームの定義側によるエラーメッセージとの整合性が取れるようになるというわけだ。うーん、慣れるまで面倒な気もするけど便利。
{form_input}
こちらは、フォームのinputタグを出力するSmartyPluginです。上と同じような ActionFormがあるとして、
テンプレート上で、
{form_input name="hoge"}
こうすることで、その部分は、
<input type="text" name="hoge" value="" />
このような形になります。また、value="" の部分は本来 value="{$form.hoge}" の意味で、{$form.hoge}はActionFormの値ですから、ActionClass or ViewClass上で
$value="hello";
$this->af->set('hoge', $value);
してやれば、
<input type="text" name="hoge" value="hello" />
このようになります。また、maxlength属性をつけたいなぁって思ったあなた、ご安心あれ。
{form_input name="hoge" maxlength="10"}
こうしてやれば、
<input type="text" name="hoge" value="" maxlength="10" />
こうなってくれます。なので、classとかidとかonchangeとかつけ放題し放題ですね。inputは確かに若干面倒なので、これで結構楽になるかなあと思いますよ。
次バージョンの正式リリースが待ち遠しいですね。
追記 at 2006-05-28 22:20
inputタグのname属性が mail になっているのを修正しました。

Trackback
Comment
コメントがありません