如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。' k1 r# l2 H3 G) {. N* F2 d
例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”, V7 u/ D$ x" N: W
2 X' a, @0 l* o6 O( v, a
function wedpage_user($type, &$edit, &$user, $category = NULL){
0 r5 n0 A4 s, z% i/ M4 Dif ($type == 'view') {3 i" W) `' f7 Q0 K+ V" Z/ X6 S
$items['wedpage'] = array(1 x! u1 {! {7 w7 C7 K( u, }
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),+ g: H( K# J& R$ f( P# d2 F# r
);
3 o/ [! w5 k+ K3 ~0 i4 K3 L$items_mail['send_mail'] = array(
, n' \1 G5 a4 v8 p'value' => drupal_get_form('wedpage_mail_form'),
* S) f3 @9 R/ m8 m5 p0 f) R. V* F, L);
4 | I& j, q' ^/ ^) c1 N6 s$wedpage = array(
' V+ e0 f7 V7 j. I1 zt('Wedding homepage') => $items,
# Y+ w1 E! ^& Q" v) \" |' T. Nt('Send email to your friends') => $items_mail,
+ V+ q( G, N: p' b0 T4 i( L9 p( ~);/ ~6 U9 d( b- k" C% ?; C
return $wedpage;
% n$ u" o0 \: ^) r4 k4 \0 e- e% I}
9 J6 O" ^. M% r3 \9 ~, X' {}
, ]* R4 d0 D6 r0 M' P0 Juser的钩子函数就设置成功了!5 U9 \; g4 e! K* t+ u
下面创建mail的发送函数
6 X* B! Y) F [; g# L0 P7 H* N% H1 E- U6 \* B
function wedpage_mail_form(){
3 a* x$ Z; }* Z+ S$form['wedpage_mail'] = array(9 q0 a+ {: L: e+ |4 k L' l( H& q9 O
'#type' => 'textfield',
' r( d9 e, z( E( Y3 ^0 [+ v) j) \2 r( q'#size' => 60,
6 x6 g7 C: D, \! @) F/ ['#prefix' => '<table><tr><td>',/ F$ I. ~, f+ g) z' i6 c R0 ~
'#suffix' => '</td>',& t+ M5 {" }" S5 e4 q; M1 h4 G4 T
); ( U* E+ V/ v# N8 \+ ~
$form['submit'] = array(2 `# g/ \2 b. m6 h$ j- l1 Z2 A1 B2 T
'#type' => 'submit',
2 D5 d F9 Q# E9 H5 ~" ]4 q'#value' => t('Send'),/ Z5 S( r7 T Y% z& k! g2 R
'#prefix' => '<td>',+ o; {4 s/ [* Z! c1 s* K" d
'#suffix' => '</td></tr></table>',
" A1 `4 ~' N8 E0 e6 a);
& l' x! X; O2 qreturn $form;
3 z v% I, o* U2 i0 i' u) w}
& n: c5 I$ L$ |& cfunction wedpage_mail_form_submit($form_id, $form_values){
0 r4 M; D; f0 J* T) n$ Qglobal $user, $base_url;
+ g: H% b& m* ~if (valid_email_address($form_values['wedpage_mail'])) {# c# |; v: ?, ?) f
$mailkey = 'wedpage';
2 `2 u' W& w8 e2 {% A5 c$to = $form_values['wedpage_mail'];5 B& I5 e2 h3 h g b# }
$subject = 'wedding web page address';0 _2 P$ T$ w3 p9 I, ~( F+ W) w4 c
$url = $base_url.'/ourwedding/'.$user->uid;, W" T, Z' S& h( o/ l6 _- O2 y1 e
$body = $url;; q$ s% m W6 P$ J! J
if (drupal_mail($mailkey, $to, $subject, $body)) {5 M9 O& Y5 n1 v, Z) j- ?/ ^" [
drupal_set_message(t('The mail send successful!'));2 @& F: ?' b9 z
}else {
) b) o! W3 Y2 n q- Z8 o/ mdrupal_set_message(t('The mail send failed.'), 'error');+ l9 X8 Z; @ v. a
}/ ~: M4 u# K, m7 D( T8 X6 z
}else { y% {+ l* a; O" B# i4 T
drupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');+ k1 D: G5 z6 a# x
}7 J& s4 z) o7 ?, A7 D
}
2 x. L3 Y' v' C) E( h上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
) A, H. w7 Y: c1 Z% Z' s( G4 [% C: ]. o" h& e7 u9 Q5 P$ J
- T& | f1 {1 h3 u1 i, Y: s1 S/ P9 `+ \) a* E# L# }
|
|