Как мне оценить адрес электронной почты пользователя на сайте drupal? - PullRequest
0 голосов
/ 04 августа 2011

Я использую модуль уведомлений на небольшом сайте drupal 6 и хочу иметь возможность отправлять пользователю смс или сообщения электронной почты на основе значения поля адреса электронной почты пользователя.

У меня есть доступ кшлюз, так что все, что мне нужно сделать, это добавить «@» и адрес шлюза в конце номера мобильного телефона.

Итак, я хочу сказать покровителям вводить либо номер их мобильного телефона, либо адрес, но у меня есть скрипт, который оценивает, что находится в этом поле.По сути, если уже есть «@» (что означает, что они ввели свой адрес электронной почты), значение не изменяется.Но если нет «@» и значение равно 10 цифрам (номер телефона), то автоматически добавляется «@gatewayaddress».

Я могу выяснить PHP с preg_match, чтобы сделать это,но как мне получить значение поля при создании учетной записи?

Я нахожу информацию о настройке регистрации пользователя, но я думаю, что мне нужно написать простой модуль для этого, чтобы его было проще поддерживать в будущем.

Я не использую sms-инфраструктуру и модули шлюза drupal, потому что текстовые сообщения не отправляются, а пробные версии модулей по-прежнему не работают, и я испортил мой сайт.Кроме того, этот шлюз, который я использую, доступен для моего работодателя бесплатно, и, самое главное, он просто работает.

Может кто-нибудь помочь мне разобраться с этим, чтобы начать?


@ 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';
    }
 }  
}

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Это обычное выражение для подтверждения адреса электронной почты

preg_match("/^[^@]*@[^@]*\.[^@]*$/", $email_address)
0 голосов
/ 04 августа 2011

Вы можете использовать функцию hook_user для проверки и изменения поля электронной почты пользователя, чтобы вы могли соответствующим образом обновить его.

Не забудьте использовать form_set_value, если вы изменяете поля формы, чтобы они сохранялись.

Вас может даже заинтересовать использование встроенной функции valid_email_address в Drupal, которая проверяет, является ли что-то адресом электронной почты.

И да, выпридется поместить все эти настройки в ваш собственный маленький модуль.

...