如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。+ |( a1 D( ^" b% z. ~
例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
$ j9 I- ]( ?) N( E6 C3 v2 [: @2 ~/ n' X% o+ Q2 u
function wedpage_user($type, &$edit, &$user, $category = NULL){$ y- j7 B, x- D0 F5 Y
if ($type == 'view') {1 n6 K- e5 Q1 l( g9 B% q$ g
$items['wedpage'] = array(! E* S, ~5 f& g
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),7 V2 S+ `! _4 k+ a0 T& o
);
; `2 n" N+ j+ f6 K7 d$items_mail['send_mail'] = array(
5 E4 f; w# }$ r! Q8 w7 ^'value' => drupal_get_form('wedpage_mail_form'),
% M& r! B b7 W. Z- f);
/ e, i* x: G2 H5 y8 C( Z$wedpage = array(; Y2 ]- O; Q9 z9 t0 u! O
t('Wedding homepage') => $items,. d7 J9 X/ s2 |9 ?# H0 M
t('Send email to your friends') => $items_mail,
) [2 W7 z% e: b$ ]0 _! J+ I);- D/ A6 t$ l* ~! R( {% X# K
return $wedpage;
) C0 R& D4 Q; _& V* e}4 r) c$ n- P4 r P
}) T* L5 a- g* v, M( C7 K
user的钩子函数就设置成功了!
& {* M( Y. {/ s5 I下面创建mail的发送函数* ]# p+ p8 [9 z: H, [
3 \0 b; D" `6 x9 s: h8 z2 A! Xfunction wedpage_mail_form(){
" b, O# V' k! e' p$form['wedpage_mail'] = array(" q9 s( T& U! ?2 c2 n5 e6 h; L
'#type' => 'textfield',- |, d9 e9 _6 H2 O3 `
'#size' => 60," Y: @5 o" l8 h
'#prefix' => '<table><tr><td>',! z1 D% ?1 g) w5 H3 f
'#suffix' => '</td>',
: x( E' D4 f1 ]# F0 L); / V: D! j4 G5 U
$form['submit'] = array(
% a! I& m# P) e8 b" X- H: }'#type' => 'submit',
+ b' x0 o0 |+ O7 X/ C6 C'#value' => t('Send'),5 ?! j* [) t/ O7 o9 ^* z
'#prefix' => '<td>',5 H% D7 z' \9 H4 n- o& F
'#suffix' => '</td></tr></table>',
. W6 e Y5 J- u. ^* x);
$ s; `) `. @/ @5 o" |8 n! Yreturn $form;
* r. V( T0 a% B9 ]$ S: x}
$ c1 C* ~' O: l2 B+ gfunction wedpage_mail_form_submit($form_id, $form_values){0 d3 g. v6 A: c3 [3 p
global $user, $base_url;
: ?" M% I. v6 Q: J. Cif (valid_email_address($form_values['wedpage_mail'])) {
$ t8 o3 Q. ~; b( g, F$mailkey = 'wedpage';
; W$ }* A6 R& r" N2 K$to = $form_values['wedpage_mail'];- T& ~/ B9 Y8 r( M7 g
$subject = 'wedding web page address';
- t5 {0 [6 [( J: i% H$url = $base_url.'/ourwedding/'.$user->uid;1 V7 c9 r, w: d
$body = $url;+ A6 u' C* ^; S. M! {
if (drupal_mail($mailkey, $to, $subject, $body)) {
3 l6 ?% m/ x' Tdrupal_set_message(t('The mail send successful!'));8 j/ }3 B# l8 Q$ c
}else {$ j* N# D! ]5 w& q6 }
drupal_set_message(t('The mail send failed.'), 'error');! T- A/ G7 z' P/ S- C1 X
}
, q/ R0 N* U% o4 ]( J}else {
! V* l3 ~6 f8 sdrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
4 ~2 `" |. Y) ?}" L2 P" y+ V. q$ Y; j* [& Z
}
* W2 b* d4 J! z, R! m$ s+ ~上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
" n" r S6 c8 y% t$ _, f! W
, ^2 d2 y3 M+ P; {6 K2 q \8 k8 @
+ S2 M8 b' f% M1 i$ l- E |
|