1

フィールドのあるノードタイプがあります。必須のものとそうでないものがあります。ノードフォーム作成のマルチステップフォームを実行しようとしています。必須フィールドは最初のステップであり、残りは次のステップです。

最初のステップで不要なフィールドをhook_form_alterで非表示にします。これは簡単な部分ですが、フォームをマルチステップフォームに変換する方法がわかりません。使用する必要があると書かれているAPIドキュメントを読みました

$form['next'] = array(
      '#type' => 'submit',
      '#value' => 'Next >>',
);

これは、drupalがこれがマルチステップ形式であることを知る方法です。しかし、正しく理解していれば、$ formがその状態にないため、hook_form_alterでこれを使用することはできません。

送信を削除してフォームの横に追加するにはどうすればよいですか?

助けてくれてありがとう。

4

2 に答える 2

2

ガイダンスとしてhttp://drupal.org/project/mformshttp://drupal.org/project/multistepを試してください。モジュールは基本的に簡単なマルチステップフォームを作成するためのものです

いくつかのスニペット、

マルチステップは、コンテンツタイプ編集フォームにマルチステップ機能を追加します。これは、コンテンツタイプ内の各フィールドグループにステップ番号を割り当て、現在のステップに属していないすべてのグループを非表示にすることによって行われます。その後、ユーザーは、前、次、または現在のステップにリダイレクトするさまざまな送信ボタンを使用できます。

于 2013-01-23T11:08:31.940 に答える
0

hook_form_alter (または hook_form_FORM_ID_alter)使用したいものです。イベントが最後に発生することを確認する必要があります。これを行うには、データベースにアクセスして、システムテーブル内のモジュールの重みを増やします (または、長い道のりである db_update を記述します)。

多くの Drupal 開発者は、「Overrides」などと呼ばれるモジュールを作成しますが、これは常に最後に実行されます。そこにオーバーライドを入れることができます。

プロジェクトの補足として、Ctools とそれに含まれる form_wizard 機能を調べることをお勧めします。ウィザードをモーダルに配置したい場合に非常に便利です。mforms よりも非常に優れていることがわかりましたが、少し慣れが必要です。

幸運を!

于 2013-01-23T15:01:40.667 に答える