如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。+ B% G" G' q+ f4 j% ~, S7 [* R* s
例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
* |' N" q& P; M+ W
9 B* T( _1 ?) C- p- p" vfunction wedpage_user($type, &$edit, &$user, $category = NULL){
) P, M( ^* j% i% b9 Z" Iif ($type == 'view') {
( J# f3 j# L. A4 M! n' M! j0 o$items['wedpage'] = array(
/ `6 z" [7 \0 J' u4 T4 R2 O6 C2 G'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),
& k7 c+ i5 g9 W8 F- U);% Z* S7 p+ J: N# _1 a, Q
$items_mail['send_mail'] = array(
& I$ @( U4 x. |2 n3 R! e'value' => drupal_get_form('wedpage_mail_form'),
. T$ o/ {- f9 [);( L' U2 ]; E+ h* H3 v( O. H& V
$wedpage = array(
# P6 _9 N) \. g( B7 g7 {4 f' At('Wedding homepage') => $items,2 X2 n9 K) `' R$ i1 I2 \2 M$ K
t('Send email to your friends') => $items_mail,! ~2 R2 M5 T& c0 C
);1 E: x* a8 X8 t) c% u* R
return $wedpage;9 J' l2 g* ?7 x, J0 N
}
! g) N- D$ a9 k}/ o2 ~7 K1 A* Y! b, k F! \2 g( R
user的钩子函数就设置成功了!6 e0 Q+ e. w6 g3 E" U# ^- l) N6 L
下面创建mail的发送函数* r+ Z) m! \. T- S. E- [
- T7 ^% ~% i2 T+ ]: D3 k
function wedpage_mail_form(){2 x5 z' V8 C- f& A. B9 q9 j
$form['wedpage_mail'] = array(
/ L7 P+ l3 o- s'#type' => 'textfield',
( h* w4 o; l$ y+ R- m'#size' => 60,) W6 ?/ D5 \& ^8 @6 r
'#prefix' => '<table><tr><td>',0 B4 s$ Z! D/ q+ W1 g! V
'#suffix' => '</td>',) C8 I1 j. q+ l3 k, j+ x8 A
);
+ f$ z4 a0 ? ?, k$ S2 _5 v' O$form['submit'] = array( E2 x5 v, l2 Q. T2 {' H' T' Z+ O
'#type' => 'submit',
: ]" Q! P7 \$ e. B1 h6 b, I'#value' => t('Send'),1 F6 q6 V1 e% ?# Z* {3 u& j
'#prefix' => '<td>',
9 _: b* O! k; {'#suffix' => '</td></tr></table>',
% W ^' p1 D% V+ A);
) s7 Z: }( T8 lreturn $form;
2 H8 t7 ~- o- W0 Q}
' X8 k2 D7 ?/ ?1 ]* V' vfunction wedpage_mail_form_submit($form_id, $form_values){
2 o' w5 f& @- n" Y8 M: f. r1 [global $user, $base_url;% ~: ^% o, x0 c! A3 S' d/ w
if (valid_email_address($form_values['wedpage_mail'])) {1 N# }- S# L9 O0 T* d8 N7 h5 x
$mailkey = 'wedpage';! P- Y& M! S8 ~% M K
$to = $form_values['wedpage_mail'];6 [8 [3 y' ?- | ~; k
$subject = 'wedding web page address';
' u& J- o; d, ~+ a |& b, W$url = $base_url.'/ourwedding/'.$user->uid;% c; l& L A- v: f) U2 ^
$body = $url;# b2 k# z f, s+ y5 q) D' r, y
if (drupal_mail($mailkey, $to, $subject, $body)) {, H0 k l' S, z) b8 Q( y
drupal_set_message(t('The mail send successful!'));
7 [* l+ {1 Z! Y' a" \" V}else {
\$ a6 w8 Z5 r* T& w# Gdrupal_set_message(t('The mail send failed.'), 'error');$ \$ h& s0 Z: E% |& @1 q6 N* b6 Z
}
9 k3 C5 s0 m9 m( o2 Z( {' l* z}else { y) m1 T. O( k+ m8 ?) t
drupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
% {" D- k5 P3 O$ @: a: i7 J}8 f Y: U' A5 n: W- h" A
}) _- L- d0 O) ?+ |+ F
上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!* T1 }& u; v) s
3 q$ v; m8 t; O* P9 |6 k+ Z& K" T8 ~& e) h5 ~3 o4 v" l
- s1 }! b4 S6 {: g4 v7 r
|
|