HTML_QuickForm_Renderer_Array

HTML_QuickForm_Renderer_Array – フォームを配列で表す

Description

このレンダラは自分自身では何も出力せず、フォームの構造を配列で返します。 この配列は、後で出力を生成する際に使用されます。 このレンダラと Smarty テンプレートエンジンを使用した例が、 docs/renderers ディレクトリにあります。

フォームの配列は、以下のようになります。

 
array(
  'frozen'           => 'フォームが凍結されているかどうか',
  'javascript'       => 'クライアント側での検証用の javascript',
  'attributes'       => '<form> タグの属性',
  '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
      )
    )
  )
);

element_i は、次のような配列となります。

 
array(
  'name'      => '要素の名前',
  'value'     => '要素の値',
  'type'      => '要素の型',
  'frozen'    => '要素が凍結されているかどうか',
  'label'     => '要素のラベル',
  'required'  => '要素が必須かどうか',
  'error'     => '要素に関連するエラー',
  'style'     => '要素の型に関する情報 (例: Smarty)',
  // グループでない要素の場合
  'html'      => '要素の HTML'
  // 要素がグループである場合
  'separator' => 'グループ要素のセパレータ',
  'elements'  => array(
    element_1,
    ...
    element_N
  )
);

HTML_QuickForm::toArray() メソッドは、Array レンダラを内部で使用しています。