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

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

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

[复制链接]
发表于 2-1-2012 22:32 | 显示全部楼层 |阅读模式
如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
4 u' A3 F5 Z! t, G6 o例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
+ X: O+ F- ?! |4 E. W$ A8 ^6 D$ n  z! T; K/ c4 E: X: F5 ?
function wedpage_user($type, &$edit, &$user, $category = NULL){6 ~4 B& Z" _, ^5 `  C+ g' |& l
if ($type == 'view') {
$ Z9 Z# _& w1 |5 W$ u# @9 s- w$items['wedpage'] = array(
3 i2 g6 O9 C( |3 n$ e'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),6 n6 \+ l  q; `
);
5 n$ I& z3 H" O$ a8 f$items_mail['send_mail'] = array(7 \/ r3 [; ^0 @* k1 @7 u6 E0 Z8 l
'value' => drupal_get_form('wedpage_mail_form'),
: \" c) f: S8 C);# D  K9 F  c% Z7 H9 G- f. G
$wedpage = array(
4 G# p5 [+ k# U5 Q; }% m& o: ]- s4 It('Wedding homepage') => $items,% M6 }. W  s2 A; g$ S& u5 S
t('Send email to your friends') => $items_mail,* [  M4 b- w: Z9 h- g8 A
);7 @" Y: W0 Y/ N$ ^/ _
return $wedpage;% U3 D- B: `# a- |" \
}4 Y  b( X" N1 X& a, J
}7 ?/ K" o) Q5 P/ w! j: z8 q
user的钩子函数就设置成功了!
! \  [4 C' E- u6 D% j3 l4 M; s下面创建mail的发送函数
3 u* c0 ?0 |/ Z; z. ^4 P: {! i/ t% k7 {+ b0 y
function wedpage_mail_form(){' h4 z" @- J2 I4 z* I
$form['wedpage_mail'] = array(
3 a+ A" g1 v# a  Z5 c7 ~, j2 ~'#type'             => 'textfield',2 O7 I# E6 C2 u0 \: k# C
'#size'             => 60,4 m- T7 E+ o: f
'#prefix'            => '<table><tr><td>',
( q) Q2 }( M$ c, p'#suffix'            => '</td>',/ H9 d+ \# ^& v0 J- a) R
);   
2 O; ?" F2 L0 o% {) A6 J2 u0 z$form['submit'] = array(' d6 ~& B  r8 O/ Q. @( z
'#type'             => 'submit',* a+ O! o+ |. _: c
'#value'             => t('Send'),3 M3 E. S: n9 N0 H4 W5 X( p# y) |
'#prefix'            => '<td>',  J2 x$ o! j6 G7 b
'#suffix'            => '</td></tr></table>',
) p8 L: n' |( A0 a6 R);      
/ b: i. H/ E5 y' v$ Jreturn $form;   
5 T1 o( n( }7 I2 m1 |- b& l% ]# Z}
" T' v  s; V, A! V- W1 qfunction wedpage_mail_form_submit($form_id, $form_values){
/ G- c+ d5 B8 P# e" v- l4 xglobal $user, $base_url;
- N8 m3 H$ Q& V3 K, n: ~$ |if (valid_email_address($form_values['wedpage_mail'])) {
5 c" K$ g, |  t% O$mailkey = 'wedpage';
8 o" B  b  N7 N- ^+ ~2 c; v$to = $form_values['wedpage_mail'];
5 B) {% E: t4 U2 s4 l$subject = 'wedding web page address';
: m( }0 H% [2 y* \/ p- O$url     = $base_url.'/ourwedding/'.$user->uid;
3 Y! \9 [  i5 L7 c! }; y# x. ]$body = $url;
  S3 t. Y% j6 Hif (drupal_mail($mailkey, $to, $subject, $body)) {
6 X( n& z+ b7 \& Hdrupal_set_message(t('The mail send successful!'));
+ v) |1 \2 J2 @6 L}else {$ j: I  c9 e2 w" p  U( {# a
drupal_set_message(t('The mail send failed.'), 'error');$ ^9 |2 k" `9 v7 m- C6 m
}! Z+ Q9 G& G! I; P
}else {
+ [1 j) U+ N. wdrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
) h( u# G3 [" `5 u* K}. G, r/ Y$ Z7 o7 a" L" z$ }
}
% u  _$ j& o: o- Q7 @! j: s上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
* T8 k8 K8 z! n% g4 v4 }3 s2 B! z7 h" b4 M

1 f3 g, D: p7 ~4 l- L0 F% F  M' |1 c9 I& V- f% ^* h

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

GMT+8, 2-12-2025 16:05 , Processed in 3.890032 second(s), 108 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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