如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
4 u' A3 F5 Z! t, G6 o例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
+ X: O+ F- ?! |4 E. W$ A8 ^6 D$ n z! T; K/ c4 E: X: F5 ?
function wedpage_user($type, &$edit, &$user, $category = NULL){6 ~4 B& Z" _, ^5 ` C+ g' |& l
if ($type == 'view') {
$ Z9 Z# _& w1 |5 W$ u# @9 s- w$items['wedpage'] = array(
3 i2 g6 O9 C( |3 n$ e'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),6 n6 \+ l q; `
);
5 n$ I& z3 H" O$ a8 f$items_mail['send_mail'] = array(7 \/ r3 [; ^0 @* k1 @7 u6 E0 Z8 l
'value' => drupal_get_form('wedpage_mail_form'),
: \" c) f: S8 C);# D K9 F c% Z7 H9 G- f. G
$wedpage = array(
4 G# p5 [+ k# U5 Q; }% m& o: ]- s4 It('Wedding homepage') => $items,% M6 }. W s2 A; g$ S& u5 S
t('Send email to your friends') => $items_mail,* [ M4 b- w: Z9 h- g8 A
);7 @" Y: W0 Y/ N$ ^/ _
return $wedpage;% U3 D- B: `# a- |" \
}4 Y b( X" N1 X& a, J
}7 ?/ K" o) Q5 P/ w! j: z8 q
user的钩子函数就设置成功了!
! \ [4 C' E- u6 D% j3 l4 M; s下面创建mail的发送函数
3 u* c0 ?0 |/ Z; z. ^4 P: {! i/ t% k7 {+ b0 y
function wedpage_mail_form(){' h4 z" @- J2 I4 z* I
$form['wedpage_mail'] = array(
3 a+ A" g1 v# a Z5 c7 ~, j2 ~'#type' => 'textfield',2 O7 I# E6 C2 u0 \: k# C
'#size' => 60,4 m- T7 E+ o: f
'#prefix' => '<table><tr><td>',
( q) Q2 }( M$ c, p'#suffix' => '</td>',/ H9 d+ \# ^& v0 J- a) R
);
2 O; ?" F2 L0 o% {) A6 J2 u0 z$form['submit'] = array(' d6 ~& B r8 O/ Q. @( z
'#type' => 'submit',* a+ O! o+ |. _: c
'#value' => t('Send'),3 M3 E. S: n9 N0 H4 W5 X( p# y) |
'#prefix' => '<td>', J2 x$ o! j6 G7 b
'#suffix' => '</td></tr></table>',
) p8 L: n' |( A0 a6 R);
/ b: i. H/ E5 y' v$ Jreturn $form;
5 T1 o( n( }7 I2 m1 |- b& l% ]# Z}
" T' v s; V, A! V- W1 qfunction wedpage_mail_form_submit($form_id, $form_values){
/ G- c+ d5 B8 P# e" v- l4 xglobal $user, $base_url;
- N8 m3 H$ Q& V3 K, n: ~$ |if (valid_email_address($form_values['wedpage_mail'])) {
5 c" K$ g, | t% O$mailkey = 'wedpage';
8 o" B b N7 N- ^+ ~2 c; v$to = $form_values['wedpage_mail'];
5 B) {% E: t4 U2 s4 l$subject = 'wedding web page address';
: m( }0 H% [2 y* \/ p- O$url = $base_url.'/ourwedding/'.$user->uid;
3 Y! \9 [ i5 L7 c! }; y# x. ]$body = $url;
S3 t. Y% j6 Hif (drupal_mail($mailkey, $to, $subject, $body)) {
6 X( n& z+ b7 \& Hdrupal_set_message(t('The mail send successful!'));
+ v) |1 \2 J2 @6 L}else {$ j: I c9 e2 w" p U( {# a
drupal_set_message(t('The mail send failed.'), 'error');$ ^9 |2 k" `9 v7 m- C6 m
}! Z+ Q9 G& G! I; P
}else {
+ [1 j) U+ N. wdrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
) h( u# G3 [" `5 u* K}. G, r/ Y$ Z7 o7 a" L" z$ }
}
% u _$ j& o: o- Q7 @! j: s上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
* T8 k8 K8 z! n% g4 v4 }3 s2 B! z7 h" b4 M
1 f3 g, D: p7 ~4 l- L0 F% F M' |1 c9 I& V- f% ^* h
|
|