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

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

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

[复制链接]
发表于 2-1-2012 22:32 | 显示全部楼层 |阅读模式
如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
5 i2 R; d# \/ t0 T3 T0 N- d例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”5 c. f3 j4 x0 s% a0 i( P

/ W; k9 l6 V- x% E( K+ Q2 Cfunction wedpage_user($type, &$edit, &$user, $category = NULL){
8 k" m9 T1 ]  l) ~if ($type == 'view') {6 U3 z; x  K% }9 A: l+ v* d- w
$items['wedpage'] = array(
- g: H- B0 [5 I- `$ Z'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),# U+ @( K& _; V- g8 K9 n2 S
);
' @3 O& a, L9 u  f/ \& f$items_mail['send_mail'] = array(( M+ M/ U% p8 |. L
'value' => drupal_get_form('wedpage_mail_form'),
9 l- m) s' n' n/ f& V' H9 A) |- ^);9 g7 A/ B* G7 P# |7 Z
$wedpage = array(  m5 [# g  [8 D9 W& V. Y
t('Wedding homepage') => $items,
! s! @2 E. r5 E9 p4 R  Nt('Send email to your friends') => $items_mail,( u* _% K5 v/ n1 z
);- }! ]; e2 f- ]6 @1 i4 |: {3 R
return $wedpage;, `6 |+ H6 n' H
}
' K# i5 S& _5 l9 \! D  v}
2 X! }7 x$ `( t( R6 Y5 w* M# K  M3 ruser的钩子函数就设置成功了!
4 i* h% U) G4 f5 U2 p下面创建mail的发送函数( k& g' m3 Y. W% G% ~
4 ?/ ^0 k& o$ v2 K
function wedpage_mail_form(){
) I& K& g3 |1 s0 J$form['wedpage_mail'] = array(
; P' |  ]  {( H6 h! N8 V; B- i'#type'             => 'textfield',) k2 f1 [8 i# N
'#size'             => 60,; o' S4 }& p0 _# a
'#prefix'            => '<table><tr><td>',
1 x* ?$ P. n( ]: H; s'#suffix'            => '</td>',' |2 ~$ E8 ~* k0 a2 m' Z( e# y
);    ' ]' `* M0 G* }. X& m7 B  w
$form['submit'] = array(
( c: c' @5 |% Q( z1 e7 c; J$ k'#type'             => 'submit',
! x% J# T5 @. D4 s4 b" m! o* [" y9 g; J'#value'             => t('Send'),4 E9 j& [+ W0 X. Z! Y3 D4 }
'#prefix'            => '<td>',0 F" X. @3 {- ^
'#suffix'            => '</td></tr></table>',) r& `& I# j  Y! @* @$ l% N0 O
);      % C6 G5 e: S. k
return $form;   & e" ]) i6 [1 x; \$ s1 G
}
; D! @. k$ v5 o( s1 n6 n" cfunction wedpage_mail_form_submit($form_id, $form_values){7 E6 Q0 ]$ G# C& R* [, b
global $user, $base_url;
: Q  C+ j7 ~* D4 h+ x( M7 Lif (valid_email_address($form_values['wedpage_mail'])) {
+ y; I* Z' [3 J; Z2 x" Y$mailkey = 'wedpage';
5 w$ ?7 G4 s) K/ ~8 Y$to = $form_values['wedpage_mail'];
4 @+ z$ q$ u$ S$subject = 'wedding web page address';* R, d3 A. a; e8 ?6 b( V
$url     = $base_url.'/ourwedding/'.$user->uid;
  f( n! q, ~+ n) @  L; }' u* w$body = $url;
8 o. A  P0 j1 W4 h. c+ y7 [if (drupal_mail($mailkey, $to, $subject, $body)) {( L2 M' |$ J/ W2 m) J
drupal_set_message(t('The mail send successful!'));; y# M2 r7 `  J7 Z* k& y
}else {' z1 l% |: K2 @( l- w( S  G
drupal_set_message(t('The mail send failed.'), 'error');' G. K0 s4 N7 h8 }# _" T1 v0 M! `
}& }2 m+ D& a0 c5 E& y8 @( a
}else {
5 `+ f' b, o. L7 t- H4 U2 Sdrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
5 u! P% y# {3 E0 A* A}
0 R# s, \, Y: ^) z}/ Q8 l1 H. N- H+ w6 Z5 f
上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
5 g+ o& Y$ K% D  o. M  ^# Q
, g+ x/ `  k5 N) }! k5 a5 M" W$ Y' Z) _" o- @5 j& m

; L5 [/ }! l$ t2 O6 y. y

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

GMT+8, 4-16-2025 21:02 , Processed in 0.420220 second(s), 108 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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