2011-08-04 22 views
0

小さなDrupal 6サイトで通知モジュールを使用しており、ユーザーの電子メールアドレスフィールドの値に基づいてSMSまたは電子メールメッセージをユーザーに送信できるようにしたいと考えています。drupalサイトでユーザーの電子メールアドレスを評価するにはどうすればよいですか?

私はゲートウェイにアクセスできるので、 "@"とゲートウェイのアドレスを携帯電話番号の末尾に追加するだけです。

だから、私は顧客に携帯電話の番号またはアドレスを入力するように指示したいが、そのフィールドにあるものを評価するスクリプトを持っている。基本的に、すでに「@」(電子メールアドレスを入力したという意味)がある場合、値は変更されません。しかし、 "@"がなく、値が10桁(電話番号)の場合、自動的に "@gatewayaddress"が追加されます。

私はこれを行うためにpreg_matchを使ってPHPを理解することができますが、アカウントの作成時にフィールドの値を取得するにはどうすればよいですか?

私はユーザー登録のカスタマイズに関する情報を見つけましたが、これを実行するための簡単なモジュールを作成して、これを維持しやすくすることを検討したいと考えています。

私はdrupalのSMSフレームワークとゲートウェイモジュールを使用していません。なぜなら、テキストメッセージが送信されていないためです。モジュールの開発版を試してもまだ動作せず、サイトが壊れています。また、私が使用しているこのゲートウェイは、私の雇用主に無料で提供されています。最も重要なのは、ちょうどいいことです。

誰かが私の頭の中でこれを始めるのを助けることができますか?


@nmcありがとうございます。私はモジュール開発の初心者ですが、本当にこの機能が必要です。

私のモジュールのための機能は、これは動作しません。正しい軌道に乗るにはどうすればいいですか?

function emailsmsfield_user($op,&$edit,&$account,$category = NULL) { 
    //if creating an account or updating 
     if($op == 'insert' || $op == 'after_update') { 
     /*checking for '@' symbol. If it is missing, the value gets the gateway address 
     added to the end*/ 
     if(preg_match('[^@]',$user->mail[0]['value'])) { 
$user->mail[0]['value'] = $user->mail[0]['value'] . 'gateway.address.com'; 
    } 
} 
} 
+0

どのdrupalのバージョンを使用していますか? – nmc

+0

私はdrupalを使用しています6 – Matt

答えて

1

これは、あなたがそれに応じて更新できるように、ユーザーの電子メールフィールドをチェックして、変更するhook_user機能を使用することができるかもしれメール

preg_match("/^[^@]*@[^@]*\.[^@]*$/", $email_address) 
+2

実際には、[this](http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html)は電子メールを検証するための正規表現です。 – ceejayoz

0

を検証するための定期的なexpresionです。

フォームフィールドを永続化するように変更する場合は、form_set_valueを使用することを忘れないでください。

Drupalに組み込まれているvalid_email_address関数を使用して、何かが電子メールアドレスかどうかを確認することもできます。

はい、あなたはこのカスタマイズをあなた自身の小さなモジュールに入れなければなりません。

+0

$ opのパラメータとして 'insert'または 'submit'を使用する必要がありますか? – Matt

+0

私は「提出する」か「検証する」のどちらかを試みます – nmc

関連する問題