国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal教程] Drupal中创建一个hook_user,并用mail函数发送email方法教程

[复制链接]
发表于 2-1-2012 22:32 | 显示全部楼层 |阅读模式
如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
$ v5 T: r  X' e" d% R例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”8 f4 Z4 O+ P. W& u
# ?( [. l; h6 G. V6 X
function wedpage_user($type, &$edit, &$user, $category = NULL){$ S( ?: @  Y+ f* @
if ($type == 'view') {
) N( z0 a4 g& C5 k3 V5 n$items['wedpage'] = array(( T' V$ @9 Y. s  v0 g, d
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),
* h% t. U4 i) D) o);5 c9 i5 [( g% Y3 }6 |3 N! k( ]
$items_mail['send_mail'] = array(
6 t# x$ r5 V7 h* n* X' o- D'value' => drupal_get_form('wedpage_mail_form'),; y- {: r1 M3 I' j
);
) }% o) V1 ^6 t% r+ G8 C  j6 `$wedpage = array(8 p% m. ~; s( f  t2 n% M4 C
t('Wedding homepage') => $items,
, s* ]  o. ~) c" g: E' i* B6 Q; e9 tt('Send email to your friends') => $items_mail,
1 W2 t8 {/ f5 n+ e% f  F/ P);
/ {- e$ v/ K& J. D2 [9 E3 {) E) Wreturn $wedpage;3 Q! K  t4 ?& Q, m: s& h$ {0 B
}
. l  Y, L3 s3 A3 T8 G, R}
4 `* q# t& |: v" e5 d/ }: R& guser的钩子函数就设置成功了!
" w! c2 @4 |# V( k* @下面创建mail的发送函数
7 Z; H* a3 m4 ~& X" |
7 ~# o) d9 V' {& R8 D5 }2 Afunction wedpage_mail_form(){
: j; W& O2 I# H8 `$ }8 C! }3 v$form['wedpage_mail'] = array(
; P. o; s/ ?" W7 X- w4 {3 o# U'#type'             => 'textfield',6 @  \& C: m( L7 [3 Y& P
'#size'             => 60,
0 ~! P8 F; ~$ O, @2 s# J, f'#prefix'            => '<table><tr><td>',
6 _3 t$ y4 y; w/ K! {7 v8 h8 `'#suffix'            => '</td>',4 c% p2 c1 w5 K" |6 e" @
);   
  t3 ?+ k4 T1 S# L1 c$form['submit'] = array(5 F# Z3 ^2 n0 U' `; r+ C' e6 N
'#type'             => 'submit',
! k4 e! Q8 d4 V" j- b'#value'             => t('Send'),5 w' d; a1 B& j% ^! G% C7 e: J  n- V
'#prefix'            => '<td>',' b1 h+ j# @" L
'#suffix'            => '</td></tr></table>',
5 W; x7 |* }, D7 H- i( t* A% P);      
7 x4 A1 K! L; T. f) Rreturn $form;   * o2 K: f. u- O& w6 `
}
6 j8 q# J2 L: N9 N; W) tfunction wedpage_mail_form_submit($form_id, $form_values){
; v2 |$ o/ R# E- J7 ]. xglobal $user, $base_url;
% k  L  ~. x2 V$ m1 U# P! Mif (valid_email_address($form_values['wedpage_mail'])) {
; d7 N: T! p# W$mailkey = 'wedpage';, f. d( ?& J& i
$to = $form_values['wedpage_mail'];, D% T- ~* h& @  E4 f4 f4 c
$subject = 'wedding web page address';: c7 j, c" N; E  m2 d+ {1 p% z
$url     = $base_url.'/ourwedding/'.$user->uid;* d" |7 }: R" K/ X; P& `
$body = $url;( {$ G7 R) C6 W4 B" B5 @
if (drupal_mail($mailkey, $to, $subject, $body)) {( o9 r9 U0 O5 Q4 T
drupal_set_message(t('The mail send successful!'));
& h( V7 `3 {& x( G8 \8 I# J6 F}else {
# ]% g7 X& F% \! S+ V8 n9 Q, t0 q: t# Ddrupal_set_message(t('The mail send failed.'), 'error');
8 D2 r$ h) G) n/ [8 A5 H}% Q2 |$ o) C, v4 u; R' B
}else {
# d' }7 A9 S) g: Cdrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
- {1 ?$ |. z/ z# X}
% z% L5 b+ X- O2 P+ C}+ x+ W2 j( ^1 w0 e% ~, W; k
上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!4 N+ w: L4 E, ]1 P
1 Z; D. g, Z/ F/ [1 _$ X

2 M* {. Y$ d6 ~, C: w8 v1 r- {% L( y8 m! U4 Z& E7 {+ F

|2011-2026-版权声明|平台(网站)公约|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 3-21-2025 02:11 , Processed in 0.857304 second(s), 108 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表