WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

PEAR::HTML_QuickForm で出力するHTMLのソースをカスタマイズする

      2012/12/14

エラーメッセージを日本語で出力する

HTML_QuickForm で出力されるメッセージはデフォルトでは英語です。
以下のメソッドでエラーメッセージや必須項目の告知に任意の文字列を指定できます。
※ここではHTML_QuickForm のインスタンスが$formであると仮定します。

#entities#$form->setRequiredNote("必須入力項目");
$form->setJsWarnings("以下で入力エラーがあります。\n","\n再度、入力項目を確認して下さい");#/entities#

フォームのHTMLを自由にカスタマイズする

HTML_QuickFormがデフォルトで出力するHTMLは、型にはまっていて融通が利かないところもあります。
そこで、フォームの内容を配列で受けとることができるtoArray()メソッドを利用してフォームの必要な情報だけを取得し、自分がコーディングしたHTMLの中に変数を埋め込んでいくとHTMLを好きなようにカスタマイズできます。

array HTML_QuickForm::toArray ([boolean $collectHidden = FALSE])
$collectHidden : hidden要素をまとめるかどうか

フォームの内容を配列で返します。

返り値となる配列は以下のようなフォーマットになっています。

array(
  'frozen'           => 'フォームが凍結されているかどうか',
  'javascript'       => 'クライアント側での検証用の javascript',
  'attributes'       => '
タグの属性', 'requirednote => '必須要素の注意書き', // hidden 要素を収集するオプションを設定した場合 'hidden' => 'すべての hidden 要素を集めた html', // 検証エラーがあった場合 'errors' => array( '1st element name' => '最初の要素のエラー', ... 'nth element name' => 'n 番目の要素のエラー' ), // フォームにヘッダがない場合 'elements' => array( element_1, ... element_N ) // フォームにヘッダがある場合 'sections' => array( array( 'header' => '最初のヘッダのテキスト', 'name' => '最初のヘッダの名前', 'elements' => array( element_1, ... element_K1 ) ), ... array( 'header' => 'M 番目のヘッダ', 'elements' => array( element_1, ... element_KM ) ) ) );

 - PEAR , , ,