ユーザーサインアップでカスタムコードを実行する方法

drupal.stackexchange https://drupal.stackexchange.com/questions/15090

  •  16-10-2019
  •  | 
  •  

質問

新しいユーザーがサインアップするたびに、休憩リクエストを行う必要があります。

RETリクエストは、Drupalユーザーアカウントのために保存する必要があるデータを返し、どこかでコンテンツとして表示できるようにします。

それを行うための最良/クリーンな方法は何ですか?

役に立ちましたか?

解決

簡単に行うことができます カスタムモジュール, 、最初に必ず注意してください Drupal Hooksシステムを理解します これは(ほぼ)すべてのDrupalの基盤であるためです。

モジュールでは、実装できます hook_user_presave() ユーザーアカウントが保存される前に呼び出されます。作成と更新の両方で呼び出されるため、新しいユーザーを検出するために条件でコードをガードする必要があります。残りの呼び出しの後、返されたデータを保存するいくつかのオプションがあります。最も簡単なのは、ユーザーアカウントのデータ属性を使用することです。これは、データベース列でシリアル化される単純なPHPアレイです。それはあまり良くない賢明ではなく、あまり柔軟ではありません(保存されたデータを照会することはできます)が、簡単です。

function MODULE_user_presave(&$edit, $account, $category) {
  // Accoding to user_save's documentation, this is a new user if
  // $account->is_new is set to TRUE or if $account->uid is not set
  if ($category == 'account' && (!empty($account->is_new) || !isset($account->uid)))) {
    $edit['data']['MODULE'] = MODULE_get_data_from_rest($account);
  }
}

他のヒント

Drupal 7のコア機能が利用可能です。これにより、ユーザーが作成された場合など、特定のアクションをトリガーできます。これを達成するためにコーディングする必要はありません。

  • モジュールを有効にします トリガー
  • 行きます 構成 >> 行動 ドロップダウンリストで利用可能なアクションを作成します
  • 行きます 構造 >> トリガー, 、 クリックしてください ユーザー タブとしばらく前に作成したアクションを割り当てます トリガー:新しいユーザーアカウントを作成した後

ルール また ワークフロー モジュールはあなたが探しているものかもしれません。

ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top