如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
1 m# j( H# j: Z. q5 R例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
% D+ n u/ D5 {% [4 c5 x# Z4 f# Q, ^8 [3 E* U; A$ C/ r
function wedpage_user($type, &$edit, &$user, $category = NULL){' {! R( l- \- \# c) V# u% q! N
if ($type == 'view') {9 |) e, L$ t; g$ F/ F
$items['wedpage'] = array(
& |6 C( R6 ?( h4 v( W'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),$ h2 I4 q6 c1 \
);$ k. A1 K+ [, g: x6 ]
$items_mail['send_mail'] = array(
* M) Q( L, t; g$ i8 f9 a" l$ e* m3 Q'value' => drupal_get_form('wedpage_mail_form'),
/ |4 X# E$ U/ s8 k$ z( l5 E* x);
: S( O7 h+ j$ l" b, t) J+ c5 v$wedpage = array(
* t8 U+ l5 N" zt('Wedding homepage') => $items,) U: N6 r7 E# b4 d
t('Send email to your friends') => $items_mail,
1 @; k S) ]0 u/ ~);' M, _2 K* g! Z! O4 d
return $wedpage;& }0 j& t* X V8 S- D8 j* |
}* X7 f, i; X4 V& R
}3 C+ Q7 k7 N$ x5 O0 ~4 k0 ~
user的钩子函数就设置成功了!! _' K& W( ~% \
下面创建mail的发送函数2 Y' B9 z2 o/ S6 i2 I
, s) h6 f) S4 L% h/ W0 R
function wedpage_mail_form(){" Z8 O* l/ C1 M, r% F3 t1 Z/ J
$form['wedpage_mail'] = array(
3 g, l1 A/ L9 K1 d- z, ]1 J4 O. M'#type' => 'textfield',. u. @' h$ `# S( P# @5 P, E. ]
'#size' => 60,3 H+ `8 t8 W! r3 [( O, f: _
'#prefix' => '<table><tr><td>',- C! H' s' `' d: r! ^$ G& L2 d
'#suffix' => '</td>',0 M. U9 s( Z, w9 ^ D$ l
);
" ?2 q! }9 s/ {" x7 L$form['submit'] = array(
2 `' U# R$ a: |+ Y! }'#type' => 'submit',
% ?8 w8 G- y7 Q# C2 I6 h'#value' => t('Send'),; P. V6 F1 w8 ?# X+ f# {' [
'#prefix' => '<td>',
0 u! m' e+ W& u1 w'#suffix' => '</td></tr></table>',
; w9 f- p9 n/ x/ a); - X; G3 O& E1 I' a: v
return $form;
* t/ v/ V0 r! e; W( q# l" J} s4 v+ q7 j) n9 R
function wedpage_mail_form_submit($form_id, $form_values){) ^% q o5 e; Z$ ~/ R7 r
global $user, $base_url;
0 [1 C `' U; ~- ~! wif (valid_email_address($form_values['wedpage_mail'])) {, \/ {! Z' b! h; f
$mailkey = 'wedpage';
% [( C4 s# ^: W& a. V( a$to = $form_values['wedpage_mail'];
9 R. d* F2 x w+ n$ ^3 j$subject = 'wedding web page address';' a8 A: j n+ u0 m+ o$ t2 o
$url = $base_url.'/ourwedding/'.$user->uid;: h0 E2 s: a D
$body = $url;
5 k1 I8 d9 Y4 I2 B% jif (drupal_mail($mailkey, $to, $subject, $body)) {2 [2 b4 L6 A$ f( T. c3 Z6 C
drupal_set_message(t('The mail send successful!'));' b) J+ ?' ]+ S* F
}else {
* I; D6 N- C' I3 K+ E( D! c0 Zdrupal_set_message(t('The mail send failed.'), 'error');8 D9 Y6 N' v+ e# ?4 T0 ], H
}
, E# {" n0 e3 @2 T- w# d, b& d5 K}else {
% y+ w/ N/ U0 E% e* Adrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
) ~& L- H% n2 r+ ]}
. `+ q1 T: N5 h7 o1 i9 O7 L* c}
& U p$ Q5 l6 F上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
6 e5 f& r9 l9 Q" S, |
" h$ l8 G4 A/ U
0 \$ N7 S# o* L" X+ e, J. u* V3 D# d- K) @/ O
|
|