国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal教程] Drupal中创建一个hook_user,并用mail函数发送email方法教程

[复制链接]
发表于 2-1-2012 22:32 | 显示全部楼层 |阅读模式
如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
7 W6 |  }$ P7 y% `; i例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
, s; R( C% i& B0 O: A3 u4 ^7 j( m2 j8 r
function wedpage_user($type, &$edit, &$user, $category = NULL){
3 E9 H( ~# ~$ J* `+ F' G8 Bif ($type == 'view') {
2 i" O, T9 M3 j1 w$items['wedpage'] = array($ f6 D: j! ~. r, I6 b: N; E/ d( B
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),
$ w8 u6 F1 C- G- u);
3 f) r0 y  l+ c4 [$items_mail['send_mail'] = array(, W9 b2 ]# R0 s* u8 W; a
'value' => drupal_get_form('wedpage_mail_form'),1 Z8 |/ C5 k* i9 K5 S) v, z
);% ?# A5 r' H; W* E4 M! H: B' b- v$ S
$wedpage = array(0 ]. l  e" X2 w+ Y7 a  V; ~
t('Wedding homepage') => $items,* w1 s% e) u  k0 q2 ?4 s" O- n/ p
t('Send email to your friends') => $items_mail,8 h1 R, P0 h( S+ n" b
);
8 z) G+ H( D) e: wreturn $wedpage;
) B/ c% t' `- L0 L4 P. y}- \/ C3 I; u# Q
}
( {/ k7 k2 B0 B2 m3 a' ruser的钩子函数就设置成功了!& ]+ L! P: w- M' d( U8 E4 o% m/ i
下面创建mail的发送函数
) _4 P/ L2 ~6 [4 F3 Y
$ _$ i6 N& g# ^) Nfunction wedpage_mail_form(){6 B) X6 M) H1 B
$form['wedpage_mail'] = array(& r8 z/ {" K9 g2 W2 B' p
'#type'             => 'textfield',) T; s1 _3 O3 e. q' p' E# O
'#size'             => 60,
! h$ [$ f( }: R$ {9 {) k' O. h'#prefix'            => '<table><tr><td>',8 m/ B: K  V7 l0 E
'#suffix'            => '</td>',; K# H* o& A! d" m9 P
);   
0 \3 _) P5 Q- V2 l  T$form['submit'] = array(
. ]5 f0 y, x* ?. X4 B1 S'#type'             => 'submit',
! S( N+ [! W% l1 w6 i# S, X'#value'             => t('Send'),
+ r0 l! z/ z/ x* s5 ]'#prefix'            => '<td>',
* I2 K9 L. \1 r: b0 P- R'#suffix'            => '</td></tr></table>',
2 [; W# m% Z9 G4 Y: T, i9 G);        L/ I3 x4 z6 D( c6 k* _1 D
return $form;   
7 f+ x5 [% m$ k/ W7 y9 Q}0 t8 O+ g) E$ j" c8 s4 f' ?
function wedpage_mail_form_submit($form_id, $form_values){
1 Z2 ]" |9 @1 G5 Y; }global $user, $base_url;' V4 Y6 f" j1 u) \
if (valid_email_address($form_values['wedpage_mail'])) {8 i# n, [$ \, V0 b
$mailkey = 'wedpage';0 u8 p# {6 C! C3 \+ M2 {% A
$to = $form_values['wedpage_mail'];3 W4 B6 P, f9 p6 o7 t1 f
$subject = 'wedding web page address';
' }* p6 q' l' [& f6 ]4 o# D$url     = $base_url.'/ourwedding/'.$user->uid;
5 W5 v7 d$ v5 a4 I$body = $url;  a! s3 y) W+ R4 D! W' B5 Z
if (drupal_mail($mailkey, $to, $subject, $body)) {' g3 x. B, V% n5 G# r* l( q
drupal_set_message(t('The mail send successful!'));
2 [0 o' _; P9 D( ^( \* N}else {
5 P4 a7 n7 \5 @2 T0 m3 xdrupal_set_message(t('The mail send failed.'), 'error');
+ {" I1 H. M2 \; V. _8 S! ~}
. s; ~( p& y9 Y3 f}else {
; W2 m$ B6 {. C. W3 D+ h6 ldrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');" [" M# o0 Y4 B  Y) O  I
}
7 ?8 Y- I1 ^! J1 s% E' Y  P: T}% `9 ?% Z! p+ P/ s' p& g
上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!% g: @0 ]/ M& j3 E) M4 |* w
  \$ r) N3 \& p

" P& U" `. K& Z* H( k& O
: k' h/ G8 b1 T$ o

|2011-2026-版权声明|平台(网站)公约|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 2-12-2025 21:49 , Processed in 2.887075 second(s), 108 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表