如果想在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
|
|