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

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

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

[复制链接]
发表于 2-1-2012 22:32 | 显示全部楼层 |阅读模式
如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。' k1 r# l2 H3 G) {. N* F2 d
例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”, V7 u/ D$ x" N: W
2 X' a, @0 l* o6 O( v, a
function wedpage_user($type, &$edit, &$user, $category = NULL){
0 r5 n0 A4 s, z% i/ M4 Dif ($type == 'view') {3 i" W) `' f7 Q0 K+ V" Z/ X6 S
$items['wedpage'] = array(1 x! u1 {! {7 w7 C7 K( u, }
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),+ g: H( K# J& R$ f( P# d2 F# r
);
3 o/ [! w5 k+ K3 ~0 i4 K3 L$items_mail['send_mail'] = array(
, n' \1 G5 a4 v8 p'value' => drupal_get_form('wedpage_mail_form'),
* S) f3 @9 R/ m8 m5 p0 f) R. V* F, L);
4 |  I& j, q' ^/ ^) c1 N6 s$wedpage = array(
' V+ e0 f7 V7 j. I1 zt('Wedding homepage') => $items,
# Y+ w1 E! ^& Q" v) \" |' T. Nt('Send email to your friends') => $items_mail,
+ V+ q( G, N: p' b0 T4 i( L9 p( ~);/ ~6 U9 d( b- k" C% ?; C
return $wedpage;
% n$ u" o0 \: ^) r4 k4 \0 e- e% I}
9 J6 O" ^. M% r3 \9 ~, X' {}
, ]* R4 d0 D6 r0 M' P0 Juser的钩子函数就设置成功了!5 U9 \; g4 e! K* t+ u
下面创建mail的发送函数
6 X* B! Y) F  [; g# L0 P7 H* N% H1 E- U6 \* B
function wedpage_mail_form(){
3 a* x$ Z; }* Z+ S$form['wedpage_mail'] = array(9 q0 a+ {: L: e+ |4 k  L' l( H& q9 O
'#type'             => 'textfield',
' r( d9 e, z( E( Y3 ^0 [+ v) j) \2 r( q'#size'             => 60,
6 x6 g7 C: D, \! @) F/ ['#prefix'            => '<table><tr><td>',/ F$ I. ~, f+ g) z' i6 c  R0 ~
'#suffix'            => '</td>',& t+ M5 {" }" S5 e4 q; M1 h4 G4 T
);    ( U* E+ V/ v# N8 \+ ~
$form['submit'] = array(2 `# g/ \2 b. m6 h$ j- l1 Z2 A1 B2 T
'#type'             => 'submit',
2 D5 d  F9 Q# E9 H5 ~" ]4 q'#value'             => t('Send'),/ Z5 S( r7 T  Y% z& k! g2 R
'#prefix'            => '<td>',+ o; {4 s/ [* Z! c1 s* K" d
'#suffix'            => '</td></tr></table>',
" A1 `4 ~' N8 E0 e6 a);      
& l' x! X; O2 qreturn $form;   
3 z  v% I, o* U2 i0 i' u) w}
& n: c5 I$ L$ |& cfunction wedpage_mail_form_submit($form_id, $form_values){
0 r4 M; D; f0 J* T) n$ Qglobal $user, $base_url;
+ g: H% b& m* ~if (valid_email_address($form_values['wedpage_mail'])) {# c# |; v: ?, ?) f
$mailkey = 'wedpage';
2 `2 u' W& w8 e2 {% A5 c$to = $form_values['wedpage_mail'];5 B& I5 e2 h3 h  g  b# }
$subject = 'wedding web page address';0 _2 P$ T$ w3 p9 I, ~( F+ W) w4 c
$url     = $base_url.'/ourwedding/'.$user->uid;, W" T, Z' S& h( o/ l6 _- O2 y1 e
$body = $url;; q$ s% m  W6 P$ J! J
if (drupal_mail($mailkey, $to, $subject, $body)) {5 M9 O& Y5 n1 v, Z) j- ?/ ^" [
drupal_set_message(t('The mail send successful!'));2 @& F: ?' b9 z
}else {
) b) o! W3 Y2 n  q- Z8 o/ mdrupal_set_message(t('The mail send failed.'), 'error');+ l9 X8 Z; @  v. a
}/ ~: M4 u# K, m7 D( T8 X6 z
}else {  y% {+ l* a; O" B# i4 T
drupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');+ k1 D: G5 z6 a# x
}7 J& s4 z) o7 ?, A7 D
}
2 x. L3 Y' v' C) E( h上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
) A, H. w7 Y: c1 Z% Z' s( G4 [% C: ]. o" h& e7 u9 Q5 P$ J

- T& |  f1 {1 h3 u1 i, Y: s1 S/ P9 `+ \) a* E# L# }

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

GMT+8, 5-1-2025 04:36 , Processed in 0.422407 second(s), 108 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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