如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
- B, V& J; Q& n' v. U2 _例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”; Q1 \- m3 w) {/ O8 s
- ^% N3 Z3 S4 U; l2 jfunction wedpage_user($type, &$edit, &$user, $category = NULL){& l5 s4 T5 ^( h+ u, s
if ($type == 'view') {
0 M5 a0 K8 q3 {8 _! z5 T: C I$items['wedpage'] = array(! v$ c9 H( [. U4 u
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),
' B! ~ ~ z/ w q3 [0 T);
! @* x, [$ e& e. X+ A% M2 T, J$items_mail['send_mail'] = array(
( [/ e/ X; `+ H1 f, I'value' => drupal_get_form('wedpage_mail_form'),- s s" L( m' R1 |# S% i/ T
);1 n/ D; c5 o0 r& P# B2 c
$wedpage = array(
" k7 o" e- P! @8 t* xt('Wedding homepage') => $items,
. l+ I( K9 x; P! Gt('Send email to your friends') => $items_mail,
5 m" R4 f1 `% m0 G. x! K);% [2 V7 ?- m% K' Y% O8 D: O
return $wedpage;' N' z! ]4 M% A' @; D9 Q% @
}
! s) @4 b. A J( Q) b" d2 V}, [( M$ s4 r* f( Y7 {8 y
user的钩子函数就设置成功了!
/ {5 Y) A/ O" |下面创建mail的发送函数
( Y( P" G) x) @* d: T$ t$ b) a4 ?) h, v5 N& I) G
function wedpage_mail_form(){# e9 Q! f/ t. h9 S9 n8 V
$form['wedpage_mail'] = array(% G' k: L ]8 c( T
'#type' => 'textfield',: j: |3 }# I/ {" I- a `
'#size' => 60,* `) t$ C! B& ~" g& w
'#prefix' => '<table><tr><td>',/ \' O2 ^5 d7 T4 r: T
'#suffix' => '</td>',) m+ K7 X& u1 M4 x! L
); 8 n5 n. B: L4 h k# U- v& m7 }
$form['submit'] = array(" J& h! O) v" Z+ {
'#type' => 'submit',; ~# V/ B$ U/ S' }
'#value' => t('Send'),
9 C4 B }0 `6 w0 s7 \1 w9 T'#prefix' => '<td>',. ^$ J# s( l2 k2 R( L
'#suffix' => '</td></tr></table>',$ G5 q8 H1 e* l2 @/ k( R
);
1 v, B9 r2 ~' nreturn $form; * r5 a! a' o1 u* _* O& A ~8 S
}: U& k! d; w6 f9 W+ _) j: [/ I
function wedpage_mail_form_submit($form_id, $form_values){
. y2 n4 }' q1 ]" g% [* q1 @4 gglobal $user, $base_url;! M+ _7 X x1 N( Y7 C, A
if (valid_email_address($form_values['wedpage_mail'])) {/ Y; b8 o( d7 ?
$mailkey = 'wedpage';
" W) {0 r* @7 L# r ]; t$to = $form_values['wedpage_mail'];
O6 }& X5 [+ B) e6 {$subject = 'wedding web page address';
! E1 W# N. p* P5 c, P# Q5 U1 B: l$url = $base_url.'/ourwedding/'.$user->uid;
4 f" P4 E) J' y9 _$ H( D; A2 X$body = $url;6 Q' p& Z/ a) ~1 m5 o! v2 M
if (drupal_mail($mailkey, $to, $subject, $body)) {
6 T- R; }5 R$ @; qdrupal_set_message(t('The mail send successful!'));
+ i1 ]: h* s4 t}else {
: R5 u% v9 V! w6 H4 x# O" W2 U# |drupal_set_message(t('The mail send failed.'), 'error');3 h; w' b- m. q& a5 v# |
}
0 s+ _! k4 m8 Z}else {* x, o: W2 i% B3 _6 B1 i
drupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
! \# q8 B! j+ S" g$ s( y! I, {6 G}
+ z, a0 d/ @8 _$ z8 b/ s& E}
9 b/ x7 f! o; `上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
8 u; Z3 V q9 Y
2 i& m$ K7 o# a& m7 Q u' _
2 `* D' D6 [( Z1 V2 [$ [6 o4 j: J! d, A0 b; B- i& s0 A6 ^
|
|