Webfoemと登録ユーザーmodule.soを統合したいのですが、ユーザーがWebフォームに入力すると、そのWebフォームの一部のフィールドがユーザーテーブルに追加され、サイトのユーザーリストに挿入されます。ユーザーからの削除を有効にする必要があります。
登録用に複数のWebフォームがあり、各フォーム変更ユーザーロールに必要です。
_webform module
_ in Drupal 6は、送信時にいくつかのフックを実装します。
その1つはhook_webform_submission_insert($node, $submission)
です。このフックは、フォーム(Webフォーム)が送信されると呼び出されます。
_$node
_は、Webフォームを保持するノードオブジェクトです。_$submission
_は、フォームに送信されてデータベースに挿入されるデータを保持します。
このフックを実装して送信データを取得し、手動で処理して、user_save()
を使用してユーザーを作成できます。
_function custom_module_webform_submission_insert($node, $submission){
$user = array(
'name' => $submission['user_name'],
'mail' => $submission['user_mail'],
);
user_save($user)'
}
_
必要なものを提供する2つの提供されたモジュールがあります(含まれている引用はプロジェクトページからのものです)。
...ユーザー登録の詳細を収集して新しいアカウントを作成する Webform コンポーネントを追加します。これは、認証されたユーザーだけがWebフォームを送信するようにしたいが、Webフォームに記入する前にユーザーに余分なハードルを作成したくない場合に役立ちます。
Webform Registerは、Webformの柔軟性を維持しながら、訪問者の重複エントリーを削減するのに役立ちます。ユーザー登録ページは、Drupalの組み込みユーザープロファイルフィールドまたは コンテンツプロファイル を使用して拡張できるため、名前などのユーザー固有の頻繁に繰り返される情報を収集するのに役立ちます。住所と組織の情報を、各訪問者のプロファイルエントリに保存します。一方、調査データや単一のイベントの設定など、個々のWebフォームにのみ関連する情報は、標準のWebフォームの動作によって収集されます。
...サイトにアクセスした訪問者が、eloquaモジュールを使用してEloquaに値を送信するだけでなく、新しいユーザーを作成するために必要な懸賞に記入できるようにする必要性から生まれました。
当時、 Webform register モジュールは、私たちが必要とすることに対して十分な柔軟性を提供しませんでした。 (eloquaマッピングに使用される)多くの異なるフィールド名があり、電子メール、ユーザー名、パスワードの値を保持していたものを追跡します。
このモジュールは Webform register とどう違うのですか?
- 最大のWebフォーム統合と柔軟性
- 登録に使用されるすべてのフィールドを追加して完全にカスタマイズできます。
- 急いでいる場合は、メールフィールドを追加するだけで、このモジュールは非常にユーザーフレンドリーで直感的なインターフェースを介して残りを処理します。
- 電子メールフィールド(webformコンポーネント)のみが必須であり、他のすべてのコンポーネントは、このモジュールによって生成されるか、必要に応じて省略されます。
- オプションで、5つのフィールドすべて(コンポーネント)のすべてのラベルと説明を指定できます:電子メール、ユーザー名、パスワード、パスワードの確認、および電子メールの確認
@Shuab Nawaz:
Webform.api.phpファイルで説明されているように、hook_webform_submission_insert()は、送信がデータベースに保存された後に呼び出されることに注意してください。
データがデータベースに保存される前に送信を変更したい場合は、hook_webform_submission_presave()を使用する必要があります。