not president's blog

脳直で書きます。自分が覚えたい事を書いているだけです。

フォームAPIの始まり

1.フォームAPIとは

 配列を作成して、エンジンにHTMLを出力させる機能


2.フォーム処理について
 ①処理の初期化
  3つの変数。
  ・$form_id  :フォームを識別するID
  ・$form   :構造配列
  ・$form_state:フォームに関する情報
   →$form_stateを初期化することから処理が始まる。
   
 ②トークンの設定
  drupal_private_keyに基づいた擬似乱数のトークンが、
  フォームの隠しフィールドに送られる。
 
 ③IDの設定
  フォームを定義する関数と一致して、drupal_get_formの1番目の
  パラメータとして送られる。
 
 ④すべてのフォーム要素定義の収集
 _element_infoがコールされる。
 独自の要素タイプを定義したい際に使われる。
 hook_elementsを実装するすべてのモジュールでそれをコールする。
 _element_infoはすべてのフォーム要素のすべてのデフォルトプロパティを
 収集して、ローカルキャッシュでそれらを保持する。
 
 ⑤検証関数の検出
  $form['#validate']プロパティにフォームの検証を処理する関数の名前を
  値に持つ配列を割り当てる。
  
 ⑥サブミット関数の検出
  $form['#submit']
プロパティにサブミットを処理する関数の名前を値に持つ
  配列を割り当てる。
 
 
 ⑦モジュール構築前のフォーム変更
  方法は二つ
  ・フォームIDに_alterをつけた名前の関数を実装する
  ・hook_form_alterを実装する
 
 ⑧フォーム構築
  form_builderにより、標準的な必須の値が加えられる。
 
 ⑨フォーム構築後の変更
  フォーム全体が構築された際、$form['after_build']に関数名が定義される任意の
  関数がコールされる。
 
 ⑩フォームがサブミット済みか否か
  分岐点
  ・フォームがはじめてサブミットされる際は、
   HTML作成が始まる
  ・フォームがすでにサブミットされている際は、
   フォームに入力されたデータの処理に移る。
   
以下次回