Drupal Forms API。 パート2-Drupal 7の場合



記事の2番目の部分には、バージョン7のDrupal Forms APIに典型的な違いが含まれています。記事のこの部分は、Drupalブログ購読者だけでなく、公開トピックとして公開されています。 ただし、Drupalに興味のない人の邪魔にならないように、(トピックの作成に関する)さらなる記事をクローズドブログ記事として公開します。



前回の記事では、AJAX(Drupal 6では「AHAH」と呼ばれる)を使用して、入力された名前をフォームに返す単純なモジュールの機能について説明しました。 バージョン7の番です。







1. Drupal API 7の最も興味深い変更







2.フォームコードの変更



フォームコードの変更はわずかです。 Drupal Forms APIの原則は変わりません。

/* FC Form */ //         (    , ,    ) function fc_form($form, &$form_state) { $form = array(); $form['name'] = array( '#type' => 'textfield', '#description' => 'Your name', '#size' => '15', ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Submit', //    ajax '#ajax' => array( //     callback- 'callback' => 'fastcontact_ajax', 'wrapper' => 'fc-form', ), ); return $form; }
      
      







2.リクエスト処理コードの変更



 //  callback-   .        function fastcontact_ajax($form, &$form_state) { //    name   values  form_state $name=$form_state['values']['name']; //       markup   . $form['result'] = array( '#markup' => '   <b>'.$name.'</b>', ); return $form; }
      
      







$ form_state配列の値は非常に大きいです。 フォームとその条件に関するすべてのデータを保存します 。 そこからフィールド名の値を取得します。



Drupal 6でdrupal_json()経由で成功した場合に表示されるテキストを送信した場合、Drupal 7でフォームを再構築し、それにマークアップ要素を追加します。 マークアップは、HTMLマークアップをフォームに出力するために使用されます。 この要素は、Drupalのバージョン6にも存在していましたが、バージョン7 では構文が変更されました



これで、フォームを表示することができます。 これを前回の記事の標準コードにすることができます。

 function render_fc_form() { $out = '<div id="fc-form-wrapper">'; $out .= drupal_render(drupal_get_form('fc_form')); $out .= '</div><!-- /.fc-form-->'; return $out; }
      
      







Drupal 7にはさらに多くのAPIの変更があることに注意してください。 モジュールの作成に関して、バージョン6以降のDrupal APIに加えられた変更のリストを以下に示します(トピックについては、個別のリスト)。



モジュール全体でアーカイブをダウンロードする



All Articles