
記事の2番目の部分には、バージョン7のDrupal Forms APIに典型的な違いが含まれています。記事のこの部分は、Drupalブログ購読者だけでなく、公開トピックとして公開されています。 ただし、Drupalに興味のない人の邪魔にならないように、(トピックの作成に関する)さらなる記事をクローズドブログ記事として公開します。
前回の記事では、AJAX(Drupal 6では「AHAH」と呼ばれる)を使用して、入力された名前をフォームに返す単純なモジュールの機能について説明しました。 バージョン7の番です。
1. Drupal API 7の最も興味深い変更
- Drupal 7では、 情報ファイルが変更されました。 ここで、モジュールに含まれるphpコードを持つすべてのファイル( incおよびtestファイル)をinfofileとして宣言する必要があります。 私たちの場合、何もありません。
- AJAXの処理方法が変更されました。 これで、 hook_menuを介して処理するパスを指定する必要がなくなりました 。コールバック関数をすぐに指定できます。
- 要求処理パスはsystemic- / system / ajaxになりました 。
- フォーム処理が変更されました。 これで、コールバック関数は2つの変数を受け取ります-フォームの配列とフォームの状態へのポインター。
2.フォームコードの変更
フォームコードの変更はわずかです。 Drupal Forms APIの原則は変わりません。
2.リクエスト処理コードの変更
$ 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に加えられた
変更のリストを以下に示します(トピックについては、個別のリスト)。
モジュール全体でアーカイブをダウンロードする